diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index f1cc7a1da1..c945ea7424 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API endpoint nebyl nalezen"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Zadejte datum"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Potvrdit"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Potvrdit odstranění"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Potvrdit odstranění položky"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Zadejte heslo"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Zadejte nové heslo"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Potvrďte heslo"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Potvrďte nové heslo"
@@ -70,72 +70,73 @@ msgstr "Email (znovu)"
msgid "Email address confirmation"
msgstr "Potvrzení emailové adresy"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Pokaždé musíte zadat stejný email."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Duplicitní výrobní číslo: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Vyplněno neplatné množství"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Nevyplněné výrobní číslo"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Neplatná skupina: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Neplatná/nevyplněná skupina {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Nenalezena žádná výrobní čísla"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Chybějící soubor"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Chybějící externí odkaz"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Příloha"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Vyberte soubor k přiložení"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Vyberte soubor k přiložení"
msgid "Link"
msgstr "Odkaz"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Odkaz na externí URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Komentář"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Komentář k souboru"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Uživatel"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "datum přidání"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Název souboru nesmí být prázdný"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Neplatný adresář přílohy"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Název souboru obsahuje nepovolený znak '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Chybějící přípona souboru"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Příloha s tímto názvem již existuje"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Chyba při přejmenování souboru"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Neplatný výběr"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Neplatný výběr"
msgid "Name"
msgstr "Název"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Název"
msgid "Description"
msgstr "Popis"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Popis (volitelně)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "nadřazený"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Název souboru"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Neplatná hodnota"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Datový soubor"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Vyberte datový soubor k nahrání"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Nepodporovaný typ souboru"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Soubor je příliš velký"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "V souboru nebyly nalezeny žádné sloupce"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "V souboru nebyly nalezeny žádné řádky s daty"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Nebyly zadány žádné řádky s daty"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Nebyly zadány žádné sloupce s daty"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Chybí povinný sloupec: '{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplicitní sloupec: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Čeština"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Němčina"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Řečtina"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Angličtina"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Španělština"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Španělština (Mexiko)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Farsi / Perština"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Francouzština"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hebrejština"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Maďarština"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italština"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japonština"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Korejština"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nizozemština"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norština"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polština"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Ruština"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Švédština"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thajština"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Turečtina"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamština"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Čínština"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Kontrola procesů na pozadí se nezdařila"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Email backend není nakonfigurován"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "Kontroly zdraví systému InvenTree selhaly"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Nevyřízeno"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Umístěno"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Hotovo"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Zrušeno"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Ztraceno"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Vráceno"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Odesláno"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Vyžaduje pozornost"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Poškozeno"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Zničeno"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Odmítnuto"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Zaškrtněte políčko pro potvrzení odstranění položky"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Upravit informace o uživateli"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Nastavit heslo"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Hesla se musí shodovat"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Informace o systému"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Činnost nebyla specifikována"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Nebyla nalezena odpovídající činnost"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr "Pro data čárového kódu nebyla nalezena shoda"
msgid "Match found for barcode data"
msgstr "Pro data čárového kódu byla nalezena shoda"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 8925689b79..6a43d11604 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API-Endpunkt nicht gefunden"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr "Fehlerdetails finden Sie im Admin-Panel"
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Datum eingeben"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Bestätigen"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Löschung bestätigen"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Löschung von Position bestätigen"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Passwort eingeben"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Neues Passwort eingeben"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Passwort wiederholen"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Neues Passwort bestätigen"
@@ -70,72 +70,73 @@ msgstr "E-Mail (nochmal)"
msgid "Email address confirmation"
msgstr "Bestätigung der E-Mail Adresse"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "E-Mail Adressen müssen übereinstimmen."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Doppelte Seriennummer: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Keine Seriennummer angegeben"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ungültiger Gruppenbereich: {g}"
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ungültige Gruppe: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ungültige Gruppensequenz: {g}"
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ungültige/Keine Gruppe {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Fehlende Datei"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Anhang"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Datei zum Anhängen auswählen"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Benutzer"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Dateiname darf nicht leer sein"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Ungültiges Verzeichnis für Anhang"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dateiname enthält ungültiges Zeichen '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Dateiendung fehlt"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Anhang mit diesem Dateinamen bereits vorhanden"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Fehler beim Umbenennen"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Ungültige Auswahl"
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Name"
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Ungültiger Wert"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Datendatei"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Neue Datei zum Hochladen auswählen"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Nicht unterstütztes Dateiformat"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Datei ist zu groß"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Keine Spalten in der Datei gefunden"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Keine Datensätze in der Datei gefunden"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Keine Zeilen ausgewählt"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Keine Spalten angegeben"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Erforderliche Spalte '{name}' fehlt"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Doppelte Spalte: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Tschechisch"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Persisch"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Ungarisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr "Portugiesisch (Brasilien)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Chinesisch"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "E-Mail-Backend nicht konfiguriert"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InvenTree Status-Überprüfung fehlgeschlagen"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Ausstehend"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Platziert"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Fertig"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Storniert"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Verloren"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Versendet"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "erfordert Eingriff"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Beschädigt"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Zerstört"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Zurückgewiesen"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Gegen Bestellung empfangen"
msgid "Production"
msgstr "in Arbeit"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Kein gültiger Währungscode"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Ungültiger Buchstabe im Teilenamen"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN muss zu Regex-Muster {pat} passen"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referenz muss zu Regex-Muster {pattern} passen"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Ungültiges Zeichen im Namen ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Überschuss-Wert darf nicht negativ sein"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Überschuss darf 100% nicht überschreiten"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr "Ungültiger Wert für Ausschuss"
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Element löschen"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Häkchen setzen um Löschung von Objekt zu bestätigen"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Benutzerinformationen bearbeiten"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Passwort eingeben"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Passwörter stimmen nicht überein"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Systeminformationen"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
msgid "Part"
msgstr "Teil"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden Lagerartikel"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen Lagerartikel"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
msgid "Stock Item"
msgstr "Lagerartikel"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Quell-Lagerartikel"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Quell-Lagerartikel"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Quell-Lagerartikel"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Quell-Lagerartikel"
msgid "Quantity"
msgstr "Anzahl"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Ziel-Lagerartikel"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr "Endprodukt"
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein"
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags"
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr "Dieses Endprodukt wurde bereits fertiggestellt"
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Seriennummer"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Seriennummer für dieses Endprodukt eingeben"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr "Seriennummern automatisch zuweisen"
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen"
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr "Folgende Seriennummern existieren bereits"
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr "Eine Liste von Endprodukten muss angegeben werden"
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden"
msgid "Location"
msgstr "Lagerort"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr "Lagerort für fertige Endprodukte"
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr "Lagerort für fertige Endprodukte"
msgid "Status"
msgstr "Status"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr "Unvollständige Zuweisung akzeptieren"
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde"
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr "Zugewiesenen Bestand entfernen"
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Abzug aller Lagerbestände, die diesem Build bereits zugewiesen wurden"
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr "Unfertige Endprodukte entfernen"
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte"
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr "Nicht zugewiesene akzeptieren"
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zugewiesen wurden"
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr "Unvollständig Zuweisung akzeptieren"
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Akzeptieren, dass die erforderliche Anzahl der Bauaufträge nicht abgeschlossen ist"
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr "Bauauftrag hat unvollständige Aufbauten"
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt"
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr "Endprodukt"
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen"
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein"
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden"
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr "Dieser Lagerbestand wurde bereits diesem Endprodukt zugewiesen"
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Lagerort, von dem Teile bezogen werden sollen (leer lassen, um sie von jedem Lagerort zu nehmen)"
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr "Lagerort ausschließen"
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr "Lagerartikel vom ausgewählten Ort ausschließen"
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr "Wechselbares Lagerbestand"
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden"
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr "Ersatzbestand"
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr "Zuordnung von Ersatzteilen erlauben"
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr "Bestand für Bauauftrag erforderlich"
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Fertig"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1508,929 +1510,945 @@ msgstr "Bauauftragdetails"
msgid "Completed Outputs"
msgstr "Fertiggestellte Endprodukte"
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Bauauftrag löschen"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Fehler beim Lesen der Datei (ungültige Kodierung)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Fehler beim Lesen der Datei (ungültiges Format)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Fehler beim Lesen der Datei (falsche Größe)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Datei"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Datei zum Hochladen auswählen"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} Datei"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr "Wert ist keine gültige Option"
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Keine Gruppe"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Neustart erforderlich"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert"
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr "Name der Serverinstanz"
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr "Kurze Beschreibung der Instanz"
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr "Name der Instanz verwenden"
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr "Anzeige von `Über` einschränken"
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr "Zeige das `Über` Fenster nur Administratoren"
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Firmenname"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "interner Firmenname"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "Basis-URL für dieses Instanz"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Standardwährung"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Standardwährung"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Von URL herunterladen"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Barcode-Scanner Unterstützung"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr "Barcode Webcam-Unterstützung"
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr "Barcode-Scannen über Webcam im Browser erlauben"
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Ändern von IPN erlaubt"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr "Teil-Stückliste kopieren"
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr "Teil-Parameter kopieren"
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr "Teil-Testdaten kopieren"
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr "Kategorie-Parametervorlage kopieren"
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Vorlage"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Baugruppe"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Komponente"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Kaufbar"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Verkäuflich"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Nachverfolgbar"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "Import in Ansichten anzeigen"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Preis in Formularen anzeigen"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "Teilpreis in einigen Formularen anzeigen"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Preis in Stückliste anzeigen"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen"
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr "Preisverlauf anzeigen"
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr "Historische Preise für Teil anzeigen"
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "Verwandte Teile anzeigen"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr "Verwandte Teile eines Teils anzeigen"
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr "Ausgangsbestand erstellen"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen"
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "Interne Preise"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr "Interne Preise für Teile aktivieren"
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr "Interner Preis als Stückliste-Preis"
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden"
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr "Anzeigeformat für Teilenamen"
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr "Format für den Namen eines Teiles"
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr "Berichte aktivieren"
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr "Berichterstellung aktivieren"
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr "Losnummer Vorlage"
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände"
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "Tage"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr "Auftrag Standardsendung"
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr "Erstelle eine Standardsendung für Aufträge"
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr "Passwort vergessen aktivieren"
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr "Anmeldung erlauben"
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "SSO aktivieren"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "SSO auf den Anmeldeseiten aktivieren"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "Email-Adresse erforderlich"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr "SSO-Benutzer automatisch ausfüllen"
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr "E-Mail zweimal"
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr "Passwort zweimal"
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr "Gruppe bei Registrierung"
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr "MFA erzwingen"
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden."
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr "Plugins beim Start prüfen"
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren"
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr "URL-Integration aktivieren"
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr "Plugins zum Hinzufügen von URLs aktivieren"
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr "Navigations-Integration aktivieren"
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins zur Integration in die Navigation aktivieren"
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr "App-Integration aktivieren"
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr "Plugins zum Hinzufügen von Apps aktivieren"
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr "Terminplan-Integration aktivieren"
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Geplante Aufgaben aktivieren"
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr "Ereignis-Integration aktivieren"
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr "Abonnierte Teile anzeigen"
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr "Zeige abonnierte Teile auf der Startseite"
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr "Abonnierte Kategorien anzeigen"
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr "Zeige überfällige Lagerartikel auf der Startseite"
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr "Zeige ausstehende POs auf der Startseite"
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr "Zeige überfällige POs auf der Startseite"
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr "Zeige ausstehende SOs auf der Startseite"
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr "Zeige überfällige SOs auf der Startseite"
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr "Labeldruck aktivieren"
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr "Labeldruck über die Website aktivieren"
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr "Teile suchen"
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr "Teile in der Suchvorschau anzeigen"
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktive Teile in der Suchvorschau ausblenden"
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr "Kategorien durchsuchen"
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr "Teilekategorien in der Suchvorschau anzeigen"
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr "Bestand durchsuchen"
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr "Lagerartikel in Suchvorschau anzeigen"
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr "Nicht verfügbare Artikel ausblenden"
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen"
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr "Lagerorte durchsuchen"
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr "Lagerorte in Suchvorschau anzeigen"
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr "Firmen durchsuchen"
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr "Firmen in der Suchvorschau anzeigen"
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr "Bestellungen durchsuchen"
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr "Bestellungen in der Suchvorschau anzeigen"
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktive Bestellungen ausblenden"
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden"
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr "Aufträge durchsuchen"
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr "Aufträge in der Suchvorschau anzeigen"
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktive Aufträge ausblenden"
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktive Aufträge in der Suchvorschau ausblenden"
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen"
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr "Fixierter Navigationsleiste"
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren"
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr "Datumsformat"
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr "Bevorzugtes Format für die Anzeige von Daten"
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr "Teilzeitplanung"
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr "Zeige Zeitplanung für Teile"
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Preis"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr "Endpunkt"
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr "Name für diesen Webhook"
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr "Name für diesen Webhook"
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr "Ist dieser Webhook aktiv"
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr "Token"
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr "Token für Zugang"
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr "Geheimnis"
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr "Shared Secret für HMAC"
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr "Nachrichten-ID"
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr "Eindeutige Kennung für diese Nachricht"
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr "Host"
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr "Host von dem diese Nachricht empfangen wurde"
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr "Kopfzeile"
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr "Header dieser Nachricht"
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr "Body"
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr "Body dieser Nachricht"
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr "Bearbeitet"
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Datei hochgeladen"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr "Positionen zuordnen"
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr "Felder zuteilen fehlgeschlagen"
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "Teile importiert"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Vorheriger Schritt"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "Bild-URL"
@@ -2597,7 +2615,7 @@ msgstr "Anlaufstelle"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Bild"
@@ -2625,9 +2643,9 @@ msgstr "ist Hersteller"
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Währung"
@@ -2635,16 +2653,16 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "Teil auswählen"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr "Teil auswählen"
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Hersteller auswählen"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr "Externe URL für das Herstellerteil"
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "Herstellerteil"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr "Parametername"
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Wert"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "Einheiten"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr "Parametereinheit"
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Notiz"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr "Mehrere bestellen"
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr "Letzte Aktualisierung"
@@ -2847,9 +2865,9 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "Bild hochladen"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Zuliefererteile"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "Teile löschen"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "Herstellerteile"
@@ -2927,8 +2946,8 @@ msgstr "Zulieferer-Bestand"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Bestellungen"
@@ -2950,8 +2969,8 @@ msgstr "Neue Bestellung"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "Aufträge"
@@ -2978,7 +2997,7 @@ msgstr "Firmenbemerkungen"
msgid "Supplier List"
msgstr "Zulieferer-Liste"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr "Keine Herstellerdaten verfügbar"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Löschen"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Lagerartikel"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Neuer Zulieferer"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Neuer Hersteller"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Kunden"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Neuer Kunde"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Firmen"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr "Label Name"
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr "Label Beschreibung"
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr "Label"
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr "Label-Vorlage-Datei"
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "Aktiviert"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr "Label-Vorlage ist aktiviert"
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "Breite [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr "Label-Breite in mm"
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Höhe [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr "Label-Höhe in mm"
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr "Dateinamen-Muster"
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr "Muster für die Erstellung von Label-Dateinamen"
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Filter"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr "Bestellungs-Beschreibung"
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr "Erstellt von"
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr "Ziel-Versanddatum"
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Geplantes Lieferdatum für Auftrag."
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
@@ -3369,94 +3388,94 @@ msgstr "Datum an dem der Auftrag fertigstellt wurde"
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden"
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr "Nur ein ausstehender Auftrag kann als abgeschlossen markiert werden"
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind"
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt"
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr "Lieferdatum für diese Position"
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr "Kontext"
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr "Zusätzlicher Kontext für diese Zeile"
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr "Stückpreis"
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr "Lieferantenteil muss mit Lieferant übereinstimmen"
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr "gelöscht"
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr "Bestellung"
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr "Versendete Menge"
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr "Versanddatum"
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr "Kontrolliert von"
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr "Sendungsnummer"
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr "Versandhinweise"
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr "Sendungsverfolgungsnummer"
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr "Informationen zur Sendungsverfolgung"
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr "Rechnungsnummer"
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr "Referenznummer für zugehörige Rechnung"
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr "Sendung wurde bereits versandt"
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr "Sendung hat keine zugewiesene Lagerartikel"
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr "Zu viele Lagerartikel zugewiesen"
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr "Position"
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr "Sendung"
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr "Sendungsnummer-Referenz"
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr "Position"
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr "Währung"
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr "Der Auftrag ist nicht offen"
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr "Bestellung muss angegeben sein"
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr "Lieferant muss mit der Bestellung übereinstimmen"
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen"
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr "Position"
@@ -3650,7 +3669,7 @@ msgstr "Position"
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
@@ -3670,59 +3689,59 @@ msgstr "Barcode-Hash"
msgid "Unique identifier field"
msgstr "Einzigartiger Identifikator"
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr "Keine Sendungsdetails angegeben"
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr "Position ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr "Seriennummern zum Zuweisen eingeben"
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr "Sendung wurde bereits versandt"
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr "Folgende Serienummern konnten nicht gefunden werden"
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr "Folgende Seriennummern sind bereits zugewiesen"
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr "Ausstehende Sendungen"
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr "Aktionen"
@@ -3978,201 +3998,202 @@ msgstr "Aktionen"
msgid "New Shipment"
msgstr "Neue Sendung"
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr "Zuliefererteile zuordnen"
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr "Auftrag nicht gefunden"
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr "Preis nicht gefunden"
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr "Stückpreis für {part} auf {price} aktualisiert"
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr "Eingehende Bestellung"
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr "Ausgehender Auftrag"
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr "Lagerartikel produziert von Bauauftrag"
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr "Lagerartikel für Bauauftrag benötigt"
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr "Gültig"
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr "Gesamte Stückliste validieren"
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr "Diese Option muss ausgewählt werden"
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr "Muss eine gültige Nummer sein"
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr "Standort für anfänglichen Bestand angeben"
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Standard-Lagerort"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr "Gesamtbestand"
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr "Bestellt"
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr "Teil-Kategorie wählen"
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Teile"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, 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:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Version"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Bestand"
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:979
+#: part/models.py:917
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:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2425
+#: part/models.py:2218
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:2442
+#: part/models.py:2235
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:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2481
+#: part/models.py:2274
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:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2487
+#: part/models.py:2280
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:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr "Wert"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "Teil-ID"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr "Name des Teils"
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr "Teil-ID"
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr "Stufe"
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2795
+#: part/models.py:2578
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:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2801
+#: part/models.py:2584
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:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr "Kaufwährung dieses Lagerartikels"
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr "Bauteil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr "Ersatzteile kopieren"
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr "Bestehende Stückliste löschen"
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr "Keine Bauteilspalte angegeben"
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr "Mehrere übereinstimmende Teile gefunden"
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr "Keine passenden Teile gefunden"
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr "Teil ist nicht als Komponente angelegt"
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr "Menge nicht angegeben"
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr "Mindestens eine Stückliste-Position ist erforderlich"
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr "Benachrichtigungen über geringen Bestand"
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "Der verfügbare Bestand für {part.name} ist unter das konfigurierte Mindestniveau gefallen"
@@ -5091,7 +5112,7 @@ msgstr "Teildetails anzeigen"
msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "Auf Lager"
@@ -5386,20 +5407,20 @@ msgstr "Neue Teilevariante anlegen"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
@@ -5412,79 +5433,79 @@ msgstr "Referenzen zuteilen"
msgid "None"
msgstr "Kein(e)"
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr "Ihre Umgebung verwendet eine veraltete Git-Version. Dies hindert InvenTree daran, Plugin-Details zu laden."
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Keine Aktion angegeben"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "barcode_data Parameter angeben"
@@ -5496,31 +5517,31 @@ msgstr "Keine Treffer für Barcode"
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Lagerartikel-Parameter muss angegeben werden"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Keine passende Lagerartikel gefunden"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr "Barcode entspricht bereits einem Lagerartikel"
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr "Barcode entspricht bereits Lagerort"
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr "Barcode entspricht bereits Teil"
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr "Barcode-Hash entspricht bereits einem Lagerartikel"
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr "Barcode Lagerartikel zugeordnet"
@@ -5528,226 +5549,226 @@ msgstr "Barcode Lagerartikel zugeordnet"
msgid "Label printing failed"
msgstr "Labeldruck fehlgeschlagen"
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr "InvenTree Mitwirkende"
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr "Integrierte ausgehende Benachrichtigungsmethoden"
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr "E-Mail-Benachrichtigungen aktivieren"
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr "Das Senden von Benachrichtigungen als E-Mails erlauben"
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr "Plugin Metadaten"
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins"
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr "Plugin-Konfiguration"
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr "Plugin-Konfigurationen"
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr "Schlüssel"
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr "Schlüssel des Plugins"
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr "Name des Plugins"
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr "Ist das Plugin aktiv"
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr "Methode"
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr "Kein Autor gefunden"
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr "Kein Datum gefunden"
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr "Bestellungen aktivieren"
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr "Kauf-Funktionalität in InvenTree aktivieren"
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr "API-Schlüssel"
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr "Schlüssel für den Zugriff auf das externe API"
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr "Numerisch"
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr "Eine numerische Einstellung"
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr "Auswahleinstellungen"
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr "Eine Einstellung mit mehreren Optionen"
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr "Quell-URL"
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr "Quelle für das Paket - dies kann eine eigene Registry oder ein VCS-Pfad sein"
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr "Paket-Name"
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten"
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr "Plugin-Installation bestätigen"
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr "Dies wird dieses Plugin sofort in die aktuelle Instanz installieren. Die Instanz wird sofort in Wartung gehen."
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr "Installation nicht bestätigt"
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr "Entweder Paketname oder URL muss angegeben werden"
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr "Keine korrekten Objekte für Vorlage gegeben"
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht"
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr "Vorlagen Name"
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr "Bericht-Vorlage Datei"
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr "Bericht-Vorlage Beschreibung"
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr "Bericht Revisionsnummer (autom. erhöht)"
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr "Muster für die Erstellung von Berichtsdateinamen"
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr "Bericht-Vorlage ist ein"
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Lagerartikel-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr "einfügen Installiert in Tests"
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen"
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr "Bauauftrag Filter"
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr "Teil Filter"
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr "Bestellungs-Abfragefilter"
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr "Auftrags-Abfragefilter"
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr "Snippet"
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr "Berichts-Snippet"
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr "Snippet-Beschreibung"
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr "Ressource"
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr "Berichts-Ressource"
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr "Ressource-Beschreibung"
@@ -5764,7 +5785,7 @@ msgid "Stock Item Test Report"
msgstr "Lagerartikel Test-Bericht"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5778,12 +5799,12 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr "Ergebnis"
@@ -5813,362 +5834,362 @@ msgstr "Verbaute Objekte"
msgid "Serial"
msgstr "Seriennummer"
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr "Gültiges Teil muss angegeben werden"
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr "Teil muss eine Referenz haben wenn is_building wahr ist"
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr "Eltern-Lagerartikel"
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr "Bestellung für diesen Lagerartikel"
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr "Lagerartikel-Notizen"
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr "In Teil umgewandelt"
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr "Artikel wurde einem Kundenauftrag zugewiesen"
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr "Lagerartikel ist in anderem Element verbaut"
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr "Lagerartikel enthält andere Artikel"
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr "Artikel wurde einem Kunden zugewiesen"
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr "Lagerartikel wird aktuell produziert"
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr "Artikel duplizeren"
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr "Lagerartikel müssen auf dasselbe Teil verweisen"
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen"
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr "Status-Codes müssen zusammenpassen"
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr "Test Notizen"
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr "Kaufpreis für diesen Lagerartikel"
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben"
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr "Seriennummern für neue Teile eingeben"
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr "Ziel-Bestand"
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr "Optionales Notizfeld"
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr "Lagerartikel für Installation auswählen"
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr "Lagerartikel ist nicht verfügbar"
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr "Ausgewähltes Teil ist nicht in der Stückliste"
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr "Ziel Lagerort für unverbautes Objekt"
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr " Transaktionsnotizen hinzufügen (optional)"
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr "Teil muss verkaufbar sein"
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr "Artikel ist einem Kundenauftrag zugeordnet"
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr "Artikel ist einem Fertigungsauftrag zugeordnet"
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr "Kunde zum Zuweisen von Lagerartikel"
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr "Ausgewählte Firma ist kein Kunde"
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr "Notizen zur Lagerzuordnung"
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr "Notizen zur Lagerartikelzusammenführung"
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr "Unterschiedliche Lieferanten erlauben"
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben"
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr "Unterschiedliche Status erlauben"
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben"
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr "Mindestens zwei Lagerartikel müssen angegeben werden"
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
@@ -6485,7 +6506,7 @@ msgid "Sublocations"
msgstr "Unter-Lagerorte"
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -6537,7 +6558,7 @@ msgstr "Zuweisungen"
msgid "Child Items"
msgstr "Untergeordnete Objekte"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr "Lagerartikel umwandeln"
@@ -6562,55 +6583,55 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?"
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr "Lagerartikel retoure vom Kunden"
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr "Lagerartikel-QR-Code"
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr "Lagerartikel löschen"
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr "Bestand-Tracking-Eintrag löschen"
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr "Bestand-Verfolgungs-Eintrag bearbeiten"
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr "Bestand-Verfolgungs-Eintrag hinzufügen"
@@ -6884,7 +6905,7 @@ msgid "Install Plugin"
msgstr "Plugin installieren"
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr "Admin"
@@ -7570,6 +7591,14 @@ msgstr "Link hinzufügen"
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr "Server-Neustart erforderlich"
@@ -7706,31 +7735,27 @@ msgstr "Unbehandelter Fehler-Code"
msgid "Error code"
msgstr "Fehler-Code"
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr "Keine Anhänge gefunden"
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr "Löschen bestätigen"
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "Anhang löschen"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr "Hochladedatum"
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr "Anhang bearbeiten"
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr "Anhang löschen"
@@ -7947,6 +7972,7 @@ msgid "Variant stock allowed"
msgstr "Varianten erlaubt"
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr "Kein Lagerbestand verfügbar"
@@ -8175,20 +8201,20 @@ msgstr "Ersatzteile verfügbar"
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr "Unzureichender Bestand verfügbar"
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr "Ausreichender Bestand verfügbar"
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr "Zugeordnet"
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr "Bestand bauen"
@@ -8196,7 +8222,7 @@ msgstr "Bestand bauen"
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr "Bestand zuweisen"
@@ -8848,15 +8874,15 @@ msgstr "Bestellung überfällig"
msgid "Items"
msgstr "Positionen"
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr "Position löschen"
@@ -8869,13 +8895,13 @@ msgid "Total"
msgstr "Summe"
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr "Stück-Preis"
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr "Gesamtpreis"
@@ -8888,39 +8914,39 @@ msgstr "Diese Position ist überfällig"
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr "Zeile bearbeiten"
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr "Zeile löschen"
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr "Zeile bearbeiten"
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr "Zeile löschen"
@@ -9013,39 +9039,39 @@ msgstr "an Kunde versand"
msgid "Stock location not specified"
msgstr "Lagerstandort nicht angegeben"
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr "Bestand kaufen"
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr "Preis berechnen"
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden"
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind"
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr "Keine passenden Positionen gefunden"
@@ -9377,11 +9403,11 @@ msgstr "Aufträge auswählen"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr "Ergebnisse minimieren"
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr "Ergebnisse entfernen"
@@ -9517,7 +9543,7 @@ msgstr "Entfernen"
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr "Hinzufügen"
@@ -10252,51 +10278,51 @@ msgstr "Benutzer"
msgid "Select which users are assigned to this group"
msgstr "Welche Benutzer gehören zu dieser Gruppe"
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr "Folgende Benutzer gehören zu mehreren Gruppen:"
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "Persöhnliche Informationen"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Berechtigungen"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Ansicht"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "Ändern"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:220
+#: users/models.py:219
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 f42ab8f401..fcc2d63405 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr ""
@@ -70,72 +70,73 @@ msgstr ""
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr ""
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 50aaad0606..65603d1a5c 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-05-25 01:01+0000\n"
+"POT-Creation-Date: 2022-05-31 04:27+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -22,7 +22,7 @@ msgstr ""
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
msgid "Error details can be found in the admin panel"
msgstr ""
@@ -31,7 +31,7 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
@@ -80,7 +80,7 @@ msgstr ""
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
msgid "Invalid quantity provided"
msgstr ""
@@ -135,11 +135,11 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 order/models.py:1215
+#: company/models.py:569 order/models.py:139 order/models.py:1273
#: part/models.py:855
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/order.js:2469
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
#: templates/js/translated/part.js:1441
msgid "Link"
msgstr ""
@@ -157,12 +157,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
+#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1581
+#: common/models.py:1582 common/models.py:1816 common/models.py:1817
+#: common/models.py:2044 common/models.py:2045 part/models.py:2357
#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2522
+#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
+#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1802
#: company/models.py:420 label/models.py:104 part/models.py:799
#: part/models.py:2541 plugin/models.py:99 report/models.py:169
#: templates/InvenTree/notifications/notifications.html:84
@@ -208,9 +208,10 @@ msgstr ""
#: templates/InvenTree/settings/plugin.html:132
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
#: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2283
msgid "Name"
msgstr ""
@@ -219,22 +220,22 @@ msgstr ""
#: company/models.py:575 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
#: part/templates/part/set_category.html:14 report/models.py:182
#: report/models.py:547 report/models.py:586
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1577
-#: templates/js/translated/order.js:1785 templates/js/translated/order.js:2269
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
#: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
#: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2304 templates/js/translated/stock.js:2359
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
msgid "Description"
msgstr ""
@@ -409,7 +410,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
@@ -417,141 +418,145 @@ msgstr ""
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Lost"
msgstr ""
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3057 templates/js/translated/order.js:3374
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2030
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
msgid "Merged stock items"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
msgid "Converted to variant"
msgstr ""
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
msgid "Consumed by build order"
msgstr ""
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
msgid "Production"
msgstr ""
@@ -640,15 +645,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1816
-#: templates/js/translated/order.js:2017 templates/js/translated/order.js:3241
-#: templates/js/translated/order.js:3726
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
msgid "Reference"
msgstr ""
@@ -667,10 +672,10 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
#: part/models.py:2303 part/models.py:2319 part/models.py:2338
#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
+#: part/models.py:2669 part/models.py:2760 part/models.py:3047
#: part/serializers.py:917 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -682,19 +687,21 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:100
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2612
-#: templates/js/translated/order.js:3010 templates/js/translated/order.js:3225
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
#: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
#: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
#: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2385
-#: templates/js/translated/stock.js:2580 templates/js/translated/stock.js:2714
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
msgid "Part"
msgstr ""
@@ -711,7 +718,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2600
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
@@ -760,12 +767,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2282
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
msgid "Target completion date"
msgstr ""
@@ -773,8 +780,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
@@ -782,7 +789,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
@@ -791,11 +798,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
#: order/templates/order/order_base.html:176
#: order/templates/order/sales_order_base.html:183 part/models.py:998
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1611
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
@@ -814,7 +821,7 @@ msgstr ""
#: build/models.py:334 build/serializers.py:390
#: build/templates/build/sidebar.html:21 company/models.py:134
#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:983
#: part/templates/part/part_sidebar.html:59
@@ -823,11 +830,11 @@ msgstr ""
#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
#: stock/serializers.py:826 stock/serializers.py:958
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1937
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:2480
-#: templates/js/translated/order.js:3399 templates/js/translated/order.js:3797
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1926
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
@@ -860,7 +867,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1355
+#: build/models.py:1238 order/models.py:1413
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -873,7 +880,7 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1375 stock/templates/stock/item_base.html:177
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -888,12 +895,12 @@ msgstr ""
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:2613
-#: templates/js/translated/order.js:2917 templates/js/translated/order.js:2922
-#: templates/js/translated/order.js:3017 templates/js/translated/order.js:3107
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
#: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2458
+#: templates/js/translated/stock.js:2449
msgid "Stock Item"
msgstr ""
@@ -903,12 +910,12 @@ msgstr ""
#: build/models.py:1405 build/serializers.py:190
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
+#: build/templates/build/detail.html:34 common/models.py:1624
#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1395 order/serializers.py:1103
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
#: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -919,21 +926,21 @@ msgstr ""
#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
#: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
#: templates/js/translated/model_renderers.js:108
#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
-#: templates/js/translated/order.js:1822 templates/js/translated/order.js:2023
-#: templates/js/translated/order.js:2614 templates/js/translated/order.js:2936
-#: templates/js/translated/order.js:3024 templates/js/translated/order.js:3113
-#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3732
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2507 templates/js/translated/stock.js:2592
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
msgid "Quantity"
msgstr ""
@@ -950,7 +957,7 @@ msgid "Destination stock item"
msgstr ""
#: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
@@ -974,7 +981,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
#: stock/serializers.py:294
@@ -1020,12 +1027,12 @@ msgstr ""
#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1213
-#: templates/js/translated/order.js:2929 templates/js/translated/order.js:3032
-#: templates/js/translated/order.js:3040 templates/js/translated/order.js:3121
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
#: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
#: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
msgid "Location"
msgstr ""
@@ -1034,12 +1041,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
+#: build/templates/build/detail.html:62 order/models.py:663
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1581
-#: templates/js/translated/order.js:2274 templates/js/translated/stock.js:1772
-#: templates/js/translated/stock.js:2476 templates/js/translated/stock.js:2608
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
msgid "Status"
msgstr ""
@@ -1100,7 +1107,7 @@ msgid "No build outputs have been created for this build order"
msgstr ""
#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: part/models.py:3039
msgid "BOM Item"
msgstr ""
@@ -1235,13 +1242,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1598
-#: templates/js/translated/order.js:1884 templates/js/translated/order.js:2290
-#: templates/js/translated/order.js:3310 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
msgid "Target Date"
msgstr ""
@@ -1268,14 +1275,14 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1299
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/order.js:2229
+#: templates/js/translated/order.js:2436
msgid "Sales Order"
msgstr ""
@@ -1310,8 +1317,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1926
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1325,10 +1332,10 @@ msgstr ""
#: build/templates/build/detail.html:80
#: stock/templates/stock/item_base.html:170
-#: templates/js/translated/build.js:1184
+#: templates/js/translated/build.js:1179
#: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1786
-#: templates/js/translated/stock.js:2615
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:242
msgid "Batch"
@@ -1337,7 +1344,7 @@ msgstr ""
#: build/templates/build/detail.html:126
#: order/templates/order/order_base.html:149
#: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
msgid "Created"
msgstr ""
@@ -1357,7 +1364,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
msgid "Unallocate stock"
msgstr ""
@@ -1387,7 +1394,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
+#: company/templates/company/detail.html:85
#: part/templates/part/category.html:177 templates/js/translated/order.js:926
msgid "Order Parts"
msgstr ""
@@ -1463,8 +1470,8 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:82
#: order/templates/order/sales_order_detail.html:129
@@ -1478,11 +1485,11 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1494,18 +1501,6 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
@@ -1729,7 +1724,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
@@ -2102,7 +2097,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1245 common/models.py:1574
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2283,160 +2278,176 @@ msgid "Display parts in search preview window"
msgstr ""
#: common/models.py:1429
-msgid "Hide Inactive Parts"
+msgid "Seach Supplier Parts"
msgstr ""
#: common/models.py:1430
-msgid "Excluded inactive parts from search preview window"
+msgid "Display supplier parts in search preview window"
msgstr ""
#: common/models.py:1436
-msgid "Search Categories"
+msgid "Search Manufacturer Parts"
msgstr ""
#: common/models.py:1437
-msgid "Display part categories in search preview window"
+msgid "Display manufacturer parts in search preview window"
msgstr ""
#: common/models.py:1443
-msgid "Search Stock"
+msgid "Hide Inactive Parts"
msgstr ""
#: common/models.py:1444
-msgid "Display stock items in search preview window"
+msgid "Excluded inactive parts from search preview window"
msgstr ""
#: common/models.py:1450
-msgid "Hide Unavailable Stock Items"
+msgid "Search Categories"
msgstr ""
#: common/models.py:1451
-msgid "Exclude stock items which are not available from the search preview window"
+msgid "Display part categories in search preview window"
msgstr ""
#: common/models.py:1457
-msgid "Search Locations"
+msgid "Search Stock"
msgstr ""
#: common/models.py:1458
-msgid "Display stock locations in search preview window"
+msgid "Display stock items in search preview window"
msgstr ""
#: common/models.py:1464
-msgid "Search Companies"
+msgid "Hide Unavailable Stock Items"
msgstr ""
#: common/models.py:1465
-msgid "Display companies in search preview window"
+msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
#: common/models.py:1471
-msgid "Search Purchase Orders"
+msgid "Search Locations"
msgstr ""
#: common/models.py:1472
-msgid "Display purchase orders in search preview window"
+msgid "Display stock locations in search preview window"
msgstr ""
#: common/models.py:1478
-msgid "Exclude Inactive Purchase Orders"
+msgid "Search Companies"
msgstr ""
#: common/models.py:1479
-msgid "Exclude inactive purchase orders from search preview window"
+msgid "Display companies in search preview window"
msgstr ""
#: common/models.py:1485
-msgid "Search Sales Orders"
+msgid "Search Purchase Orders"
msgstr ""
#: common/models.py:1486
-msgid "Display sales orders in search preview window"
+msgid "Display purchase orders in search preview window"
msgstr ""
#: common/models.py:1492
-msgid "Exclude Inactive Sales Orders"
+msgid "Exclude Inactive Purchase Orders"
msgstr ""
#: common/models.py:1493
-msgid "Exclude inactive sales orders from search preview window"
+msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
#: common/models.py:1499
-msgid "Search Preview Results"
+msgid "Search Sales Orders"
msgstr ""
#: common/models.py:1500
-msgid "Number of results to show in each section of the search preview window"
+msgid "Display sales orders in search preview window"
msgstr ""
#: common/models.py:1506
-msgid "Show Quantity in Forms"
+msgid "Exclude Inactive Sales Orders"
msgstr ""
#: common/models.py:1507
-msgid "Display available part quantity in some forms"
+msgid "Exclude inactive sales orders from search preview window"
msgstr ""
#: common/models.py:1513
-msgid "Escape Key Closes Forms"
+msgid "Search Preview Results"
msgstr ""
#: common/models.py:1514
-msgid "Use the escape key to close modal forms"
+msgid "Number of results to show in each section of the search preview window"
msgstr ""
#: common/models.py:1520
-msgid "Fixed Navbar"
+msgid "Show Quantity in Forms"
msgstr ""
#: common/models.py:1521
-msgid "The navbar position is fixed to the top of the screen"
+msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:1527
-msgid "Date Format"
+msgid "Escape Key Closes Forms"
msgstr ""
#: common/models.py:1528
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1534
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1535
+msgid "The navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1541
+msgid "Date Format"
+msgstr ""
+
+#: common/models.py:1542
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1556 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1557
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1625 company/forms.py:39
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: common/models.py:1632 company/serializers.py:285
+#: company/templates/company/supplier_part.html:263 order/models.py:975
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1633
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1793 common/models.py:1930
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1794
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1803
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1808 part/models.py:973 plugin/models.py:105
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2444,67 +2455,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1809
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1823
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1824
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1831
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1832
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1897
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1898
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1906
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1907
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1914
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1915
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1921
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1922
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1931
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1936
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1937
msgid "Was the work on this message finished?"
msgstr ""
@@ -2558,7 +2569,7 @@ msgstr ""
#: company/models.py:104 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
msgid "Website"
msgstr ""
@@ -2654,9 +2665,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
#: templates/js/translated/table_filters.js:411
msgid "Manufacturer"
msgstr ""
@@ -2667,8 +2679,10 @@ msgstr ""
#: company/models.py:331 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1804
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
#: templates/js/translated/part.js:246 templates/js/translated/part.js:956
msgid "MPN"
msgstr ""
@@ -2698,8 +2712,9 @@ msgstr ""
#: company/models.py:427
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
@@ -2710,7 +2725,7 @@ msgstr ""
#: company/models.py:434 part/models.py:940 part/models.py:2549
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
@@ -2723,11 +2738,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1564
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
#: templates/js/translated/part.js:216 templates/js/translated/part.js:924
#: templates/js/translated/table_filters.js:415
msgid "Supplier"
@@ -2738,8 +2754,9 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1791
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
@@ -2776,7 +2793,7 @@ msgstr ""
#: company/models.py:587 company/templates/company/supplier_part.html:118
#: stock/models.py:631 stock/templates/stock/item_base.html:245
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1922
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
@@ -2806,7 +2823,7 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
msgid "Company"
msgstr ""
@@ -2824,7 +2841,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
msgid "Edit Company"
msgstr ""
@@ -2847,12 +2864,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
#: order/templates/order/sales_order_base.html:116 stock/models.py:650
#: stock/models.py:651 stock/serializers.py:714
#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2251
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
#: templates/js/translated/table_filters.js:419
msgid "Customer"
msgstr ""
@@ -2871,8 +2888,8 @@ msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
-#: templates/InvenTree/search.html:118
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2886,32 +2903,24 @@ msgstr ""
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
#: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
#: part/templates/part/category.html:176
msgid "Order parts"
msgstr ""
#: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
#: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2919,88 +2928,76 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
#: company/templates/company/sidebar.html:12
#: company/templates/company/supplier_part_sidebar.html:7
#: 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:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:275 templates/navbar.html:50
#: users/models.py:43
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
#: company/templates/company/sidebar.html:20
#: 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:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:299 templates/navbar.html:61
#: users/models.py:44
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
#: company/templates/company/index.html:8
msgid "Supplier List"
msgstr ""
#: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -3013,12 +3010,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
msgid "Delete manufacturer part"
msgstr ""
@@ -3034,55 +3031,46 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:119
#: company/templates/company/supplier_part.html:15 company/views.py:41
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
#: part/templates/part/detail.html:363
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:164
+#: 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:179 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
#: part/templates/part/detail.html:184
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
@@ -3102,18 +3090,18 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:615
#: stock/templates/stock/item_base.html:238
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:884
-#: templates/js/translated/stock.js:1879
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
msgid "Delete supplier part"
msgstr ""
@@ -3188,11 +3176,11 @@ msgstr ""
#: part/templates/part/part_sidebar.html:14
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
#: templates/InvenTree/settings/sidebar.html:43
#: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
#: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
#: templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3218,8 +3206,8 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2316 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -3231,7 +3219,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
@@ -3240,7 +3228,7 @@ msgstr ""
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
@@ -3330,313 +3318,313 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:130
+#: order/models.py:137
msgid "Order description"
msgstr ""
-#: order/models.py:132 order/models.py:1216
+#: order/models.py:139 order/models.py:1274
msgid "Link to external page"
msgstr ""
-#: order/models.py:140
+#: order/models.py:147
msgid "Created By"
msgstr ""
-#: order/models.py:147
+#: order/models.py:154
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:152
+#: order/models.py:159
msgid "Order notes"
msgstr ""
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
msgid "Order reference"
msgstr ""
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
msgid "Purchase order status"
msgstr ""
-#: order/models.py:253
+#: order/models.py:311
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1573
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:256
+#: order/models.py:314
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:263
+#: order/models.py:321
msgid "received by"
msgstr ""
-#: order/models.py:268
+#: order/models.py:326
msgid "Issue Date"
msgstr ""
-#: order/models.py:269
+#: order/models.py:327
msgid "Date order was issued"
msgstr ""
-#: order/models.py:274
+#: order/models.py:332
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:275
+#: order/models.py:333
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:281
+#: order/models.py:339
msgid "Date order was completed"
msgstr ""
-#: order/models.py:310
+#: order/models.py:368
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:456
+#: order/models.py:514
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:601
+#: order/models.py:659
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:607
+#: order/models.py:665
msgid "Customer Reference "
msgstr ""
-#: order/models.py:607
+#: order/models.py:665
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:612
+#: order/models.py:670
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2298 templates/js/translated/order.js:2449
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:622
+#: order/models.py:680
msgid "shipped by"
msgstr ""
-#: order/models.py:688
+#: order/models.py:746
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:692
+#: order/models.py:750
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:695
+#: order/models.py:753
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:698
+#: order/models.py:756
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:878
+#: order/models.py:936
msgid "Item quantity"
msgstr ""
-#: order/models.py:884
+#: order/models.py:942
msgid "Line item reference"
msgstr ""
-#: order/models.py:886
+#: order/models.py:944
msgid "Line item notes"
msgstr ""
-#: order/models.py:891
+#: order/models.py:949
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:909
+#: order/models.py:967
msgid "Context"
msgstr ""
-#: order/models.py:910
+#: order/models.py:968
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:918
+#: order/models.py:976
msgid "Unit price"
msgstr ""
-#: order/models.py:951
+#: order/models.py:1009
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:958
+#: order/models.py:1016
msgid "deleted"
msgstr ""
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1299
-#: templates/js/translated/order.js:2905
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1542
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1856
-#: templates/js/translated/stock.js:2421
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
msgid "Purchase Order"
msgstr ""
-#: order/models.py:984
+#: order/models.py:1042
msgid "Supplier part"
msgstr ""
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1318 templates/js/translated/order.js:1906
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:992
+#: order/models.py:1050
msgid "Number of items received"
msgstr ""
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1000
+#: order/models.py:1058
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1008
+#: order/models.py:1066
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1079
+#: order/models.py:1137
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1084
+#: order/models.py:1142
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1171
+#: order/models.py:1229
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1178
+#: order/models.py:1236
msgid "Checked By"
msgstr ""
-#: order/models.py:1179
+#: order/models.py:1237
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1187
+#: order/models.py:1245
msgid "Shipment number"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1252
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1201
+#: order/models.py:1259
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1260
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1209
+#: order/models.py:1267
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1268
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1227
+#: order/models.py:1285
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1230
+#: order/models.py:1288
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1337 order/models.py:1339
+#: order/models.py:1395 order/models.py:1397
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1343
+#: order/models.py:1401
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1345
+#: order/models.py:1403
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1406
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1352
+#: order/models.py:1410
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1358 order/serializers.py:1008
+#: order/models.py:1416 order/serializers.py:1008
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1361
+#: order/models.py:1419
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1362
+#: order/models.py:1420
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1428
msgid "Line"
msgstr ""
-#: order/models.py:1378 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1379
+#: order/models.py:1437
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1391 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1392
+#: order/models.py:1450
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1395
+#: order/models.py:1453
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3842,7 +3830,12 @@ msgstr ""
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
msgid "Edit Purchase Order"
msgstr ""
@@ -3873,9 +3866,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
-#: templates/js/translated/order.js:2524 templates/js/translated/stock.js:570
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
#: templates/js/translated/stock.js:738
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -3939,7 +3932,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
msgid "Add Order Line"
msgstr ""
@@ -3962,7 +3955,7 @@ msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
msgid "Complete Sales Order"
msgstr ""
@@ -3971,7 +3964,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2264
+#: templates/js/translated/order.js:2471
msgid "Customer Reference"
msgstr ""
@@ -3981,7 +3974,7 @@ msgstr ""
msgid "Completed Shipments"
msgstr ""
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
msgid "Edit Sales Order"
msgstr ""
@@ -3995,7 +3988,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -4123,7 +4116,7 @@ msgid "Part Category"
msgstr ""
#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
#: users/models.py:38
msgid "Part Categories"
msgstr ""
@@ -4134,7 +4127,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
#: templates/navbar.html:24 users/models.py:39
msgid "Parts"
msgstr ""
@@ -4212,7 +4205,7 @@ msgstr ""
#: part/models.py:842 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
@@ -4326,7 +4319,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
@@ -4458,7 +4451,7 @@ msgid "BOM quantity for this BOM item"
msgstr ""
#: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
@@ -4492,7 +4485,7 @@ msgid "BOM line checksum"
msgstr ""
#: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
@@ -4503,7 +4496,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
#: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
@@ -4519,35 +4512,35 @@ msgstr ""
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:3006
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:3028
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:3040
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3048
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:3059
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:3063
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:3063
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:3095
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4724,6 +4717,11 @@ msgstr ""
msgid "New Part"
msgstr ""
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
@@ -4912,46 +4910,46 @@ msgstr ""
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -5094,8 +5092,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
#: templates/js/translated/model_renderers.js:192
#: templates/js/translated/part.js:581 templates/js/translated/part.js:658
msgid "Inactive"
@@ -5111,7 +5109,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3336
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5126,7 +5124,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
msgid "Can Build"
msgstr ""
@@ -5184,7 +5182,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
msgid "No supplier pricing available"
msgstr ""
@@ -5304,7 +5302,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
msgid "Supplier Cost"
msgstr ""
@@ -5543,7 +5541,7 @@ msgstr ""
msgid "Barcode associated with Stock Item"
msgstr ""
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
msgid "Label printing failed"
msgstr ""
@@ -5785,10 +5783,10 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:655 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:115 templates/js/translated/order.js:3022
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
msgid "Serial Number"
msgstr ""
@@ -5809,7 +5807,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1590 templates/js/translated/stock.js:2349
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
msgid "Date"
msgstr ""
@@ -5828,7 +5826,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2589
msgid "Serial"
msgstr ""
@@ -5948,7 +5946,7 @@ msgid "Destination Sales Order"
msgstr ""
#: stock/models.py:713 stock/templates/stock/item_base.html:429
-#: templates/js/translated/stock.js:1826
+#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
@@ -6228,11 +6226,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2742
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
msgid "Add Test Result"
msgstr ""
@@ -6390,7 +6388,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:394
-#: templates/js/translated/build.js:1710
+#: templates/js/translated/build.js:1693
msgid "No location set"
msgstr ""
@@ -6419,7 +6417,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:442
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1832
msgid "Last Updated"
msgstr ""
@@ -6503,8 +6501,8 @@ msgstr ""
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:238 users/models.py:40
msgid "Stock Locations"
msgstr ""
@@ -7348,8 +7346,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
#: templates/js/translated/order.js:928 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -7621,14 +7619,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
#: templates/js/translated/part.js:530
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7663,67 +7661,67 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
msgid "Error 405: Method Not Allowed"
msgstr ""
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
msgid "Error code"
msgstr ""
@@ -7784,7 +7782,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
msgid "Invalid server response"
msgstr ""
@@ -7866,7 +7864,7 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:709 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
@@ -7951,84 +7949,84 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
msgid "Delete selected BOM items?"
msgstr ""
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
msgid "Load BOM for subassembly"
msgstr ""
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
#: templates/js/translated/part.js:690
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
msgid "Inherited from parent BOM"
msgstr ""
@@ -8150,262 +8148,270 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
msgid "Allocated Stock"
msgstr ""
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
msgid "No tracked BOM items for this build"
msgstr ""
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
msgid "Completed Tests"
msgstr ""
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
msgid "No required tests for this build"
msgstr ""
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3059
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3060
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3346
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3426
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3419
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:756 templates/js/translated/order.js:2586
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2587
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2535
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2601
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2698
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2775
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
msgid "If a location is specifed, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
msgstr ""
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2286
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2528
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:506
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
#: templates/js/translated/part.js:650
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
#: templates/js/translated/part.js:654
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
msgid "No supplier parts found"
msgstr ""
@@ -8443,61 +8449,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
msgid "Select Columns"
msgstr ""
@@ -8571,62 +8577,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
msgid "Error requesting form data"
msgstr ""
@@ -8824,7 +8830,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2089
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
msgid "Stock Status"
msgstr ""
@@ -8848,217 +8854,217 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1531 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1556 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1606 templates/js/translated/order.js:2306
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1680 templates/js/translated/order.js:3478
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1697 templates/js/translated/order.js:3500
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1710 templates/js/translated/order.js:3511
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1753
+#: templates/js/translated/order.js:1856
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1780 templates/js/translated/order.js:3235
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:3260 templates/js/translated/order.js:3745
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1849 templates/js/translated/order.js:2052
-#: templates/js/translated/order.js:3276 templates/js/translated/order.js:3761
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1890 templates/js/translated/order.js:3318
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
#: templates/js/translated/part.js:979
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1949 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3432
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:1954 templates/js/translated/order.js:3433
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1955 templates/js/translated/order.js:3437
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2101 templates/js/translated/order.js:3810
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2102 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2103 templates/js/translated/order.js:3812
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2133 templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2154 templates/js/translated/order.js:3863
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2165 templates/js/translated/order.js:3874
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2176
+#: templates/js/translated/order.js:2279
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2217
+#: templates/js/translated/order.js:2392
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:2462
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2342
+#: templates/js/translated/order.js:2549
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2345
+#: templates/js/translated/order.js:2552
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2350
+#: templates/js/translated/order.js:2557
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2370
+#: templates/js/translated/order.js:2577
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2387
+#: templates/js/translated/order.js:2594
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:2628
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2431
+#: templates/js/translated/order.js:2638
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2455
+#: templates/js/translated/order.js:2662
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2461
+#: templates/js/translated/order.js:2668
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2465
+#: templates/js/translated/order.js:2672
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:2634
+#: templates/js/translated/order.js:2841
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:2685
+#: templates/js/translated/order.js:2892
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:2686
+#: templates/js/translated/order.js:2893
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:2894
+#: templates/js/translated/order.js:3101
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2975
+#: templates/js/translated/order.js:3182
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2992
+#: templates/js/translated/order.js:3199
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2993
+#: templates/js/translated/order.js:3200
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3036 templates/js/translated/order.js:3125
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3044 templates/js/translated/order.js:3134
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3416
+#: templates/js/translated/order.js:3623
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3422
+#: templates/js/translated/order.js:3629
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3429 templates/js/translated/order.js:3627
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3441
+#: templates/js/translated/order.js:3648
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3444
+#: templates/js/translated/order.js:3651
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3526
+#: templates/js/translated/order.js:3733
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3635
+#: templates/js/translated/order.js:3842
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3649
+#: templates/js/translated/order.js:3856
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:3885
+#: templates/js/translated/order.js:4092
msgid "No matching lines"
msgstr ""
@@ -9240,7 +9246,7 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2247
+#: templates/js/translated/stock.js:2238
msgid "Display as list"
msgstr ""
@@ -9248,7 +9254,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2266
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
msgid "Display as tree"
msgstr ""
@@ -9256,7 +9262,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2310
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
msgid "Path"
msgstr ""
@@ -9264,12 +9270,12 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
msgid "Delete test result"
msgstr ""
@@ -9390,11 +9396,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9554,204 +9560,204 @@ msgstr ""
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1722
+#: templates/js/translated/stock.js:1712
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1717
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1730
+#: templates/js/translated/stock.js:1720
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1730
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1734
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1746
+#: templates/js/translated/stock.js:1736
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1743
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1755
+#: templates/js/translated/stock.js:1745
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1747
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1761
+#: templates/js/translated/stock.js:1751
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1802
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1894
+#: templates/js/translated/stock.js:1884
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1932
+#: templates/js/translated/stock.js:1922
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2104
+#: templates/js/translated/stock.js:2095
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2118
+#: templates/js/translated/stock.js:2109
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2119
+#: templates/js/translated/stock.js:2110
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2374
+#: templates/js/translated/stock.js:2365
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2390
+#: templates/js/translated/stock.js:2381
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2412
+#: templates/js/translated/stock.js:2403
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2431
+#: templates/js/translated/stock.js:2422
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2450
+#: templates/js/translated/stock.js:2441
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2468
+#: templates/js/translated/stock.js:2459
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2491
+#: templates/js/translated/stock.js:2482
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2499
+#: templates/js/translated/stock.js:2490
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2575
+#: templates/js/translated/stock.js:2566
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2662
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2675
+#: templates/js/translated/stock.js:2666
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2687
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2688
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2690
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2700
+#: templates/js/translated/stock.js:2691
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2701
+#: templates/js/translated/stock.js:2692
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2702
+#: templates/js/translated/stock.js:2693
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2715
+#: templates/js/translated/stock.js:2706
msgid "Select part to install"
msgstr ""
@@ -9983,69 +9989,81 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
msgid "Export Table Data"
msgstr ""
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
msgid "Select File Format"
msgstr ""
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
#: templates/search.html:8 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
msgid "All"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 39a93dd08e..5bc1ac446c 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr ""
@@ -70,72 +70,73 @@ msgstr ""
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr ""
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index 50aaad0606..65603d1a5c 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-05-25 01:01+0000\n"
+"POT-Creation-Date: 2022-05-31 04:27+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -22,7 +22,7 @@ msgstr ""
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
msgid "Error details can be found in the admin panel"
msgstr ""
@@ -31,7 +31,7 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
@@ -80,7 +80,7 @@ msgstr ""
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
msgid "Invalid quantity provided"
msgstr ""
@@ -135,11 +135,11 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 order/models.py:1215
+#: company/models.py:569 order/models.py:139 order/models.py:1273
#: part/models.py:855
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/order.js:2469
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
#: templates/js/translated/part.js:1441
msgid "Link"
msgstr ""
@@ -157,12 +157,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
+#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1581
+#: common/models.py:1582 common/models.py:1816 common/models.py:1817
+#: common/models.py:2044 common/models.py:2045 part/models.py:2357
#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2522
+#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
+#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1802
#: company/models.py:420 label/models.py:104 part/models.py:799
#: part/models.py:2541 plugin/models.py:99 report/models.py:169
#: templates/InvenTree/notifications/notifications.html:84
@@ -208,9 +208,10 @@ msgstr ""
#: templates/InvenTree/settings/plugin.html:132
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
#: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2283
msgid "Name"
msgstr ""
@@ -219,22 +220,22 @@ msgstr ""
#: company/models.py:575 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
#: part/templates/part/set_category.html:14 report/models.py:182
#: report/models.py:547 report/models.py:586
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1577
-#: templates/js/translated/order.js:1785 templates/js/translated/order.js:2269
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
#: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
#: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2304 templates/js/translated/stock.js:2359
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
msgid "Description"
msgstr ""
@@ -409,7 +410,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
@@ -417,141 +418,145 @@ msgstr ""
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Lost"
msgstr ""
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3057 templates/js/translated/order.js:3374
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2030
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
msgid "Merged stock items"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
msgid "Converted to variant"
msgstr ""
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
msgid "Consumed by build order"
msgstr ""
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
msgid "Production"
msgstr ""
@@ -640,15 +645,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1816
-#: templates/js/translated/order.js:2017 templates/js/translated/order.js:3241
-#: templates/js/translated/order.js:3726
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
msgid "Reference"
msgstr ""
@@ -667,10 +672,10 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
#: part/models.py:2303 part/models.py:2319 part/models.py:2338
#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
+#: part/models.py:2669 part/models.py:2760 part/models.py:3047
#: part/serializers.py:917 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -682,19 +687,21 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:100
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2612
-#: templates/js/translated/order.js:3010 templates/js/translated/order.js:3225
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
#: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
#: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
#: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2385
-#: templates/js/translated/stock.js:2580 templates/js/translated/stock.js:2714
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
msgid "Part"
msgstr ""
@@ -711,7 +718,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2600
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
@@ -760,12 +767,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2282
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
msgid "Target completion date"
msgstr ""
@@ -773,8 +780,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
@@ -782,7 +789,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
@@ -791,11 +798,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
#: order/templates/order/order_base.html:176
#: order/templates/order/sales_order_base.html:183 part/models.py:998
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1611
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
@@ -814,7 +821,7 @@ msgstr ""
#: build/models.py:334 build/serializers.py:390
#: build/templates/build/sidebar.html:21 company/models.py:134
#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:983
#: part/templates/part/part_sidebar.html:59
@@ -823,11 +830,11 @@ msgstr ""
#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
#: stock/serializers.py:826 stock/serializers.py:958
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1937
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:2480
-#: templates/js/translated/order.js:3399 templates/js/translated/order.js:3797
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1926
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
@@ -860,7 +867,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1355
+#: build/models.py:1238 order/models.py:1413
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -873,7 +880,7 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1375 stock/templates/stock/item_base.html:177
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -888,12 +895,12 @@ msgstr ""
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:2613
-#: templates/js/translated/order.js:2917 templates/js/translated/order.js:2922
-#: templates/js/translated/order.js:3017 templates/js/translated/order.js:3107
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
#: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2458
+#: templates/js/translated/stock.js:2449
msgid "Stock Item"
msgstr ""
@@ -903,12 +910,12 @@ msgstr ""
#: build/models.py:1405 build/serializers.py:190
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
+#: build/templates/build/detail.html:34 common/models.py:1624
#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1395 order/serializers.py:1103
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
#: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -919,21 +926,21 @@ msgstr ""
#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
#: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
#: templates/js/translated/model_renderers.js:108
#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
-#: templates/js/translated/order.js:1822 templates/js/translated/order.js:2023
-#: templates/js/translated/order.js:2614 templates/js/translated/order.js:2936
-#: templates/js/translated/order.js:3024 templates/js/translated/order.js:3113
-#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3732
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2507 templates/js/translated/stock.js:2592
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
msgid "Quantity"
msgstr ""
@@ -950,7 +957,7 @@ msgid "Destination stock item"
msgstr ""
#: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
@@ -974,7 +981,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
#: stock/serializers.py:294
@@ -1020,12 +1027,12 @@ msgstr ""
#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1213
-#: templates/js/translated/order.js:2929 templates/js/translated/order.js:3032
-#: templates/js/translated/order.js:3040 templates/js/translated/order.js:3121
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
#: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
#: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
msgid "Location"
msgstr ""
@@ -1034,12 +1041,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
+#: build/templates/build/detail.html:62 order/models.py:663
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1581
-#: templates/js/translated/order.js:2274 templates/js/translated/stock.js:1772
-#: templates/js/translated/stock.js:2476 templates/js/translated/stock.js:2608
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
msgid "Status"
msgstr ""
@@ -1100,7 +1107,7 @@ msgid "No build outputs have been created for this build order"
msgstr ""
#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: part/models.py:3039
msgid "BOM Item"
msgstr ""
@@ -1235,13 +1242,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1598
-#: templates/js/translated/order.js:1884 templates/js/translated/order.js:2290
-#: templates/js/translated/order.js:3310 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
msgid "Target Date"
msgstr ""
@@ -1268,14 +1275,14 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1299
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/order.js:2229
+#: templates/js/translated/order.js:2436
msgid "Sales Order"
msgstr ""
@@ -1310,8 +1317,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1926
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1325,10 +1332,10 @@ msgstr ""
#: build/templates/build/detail.html:80
#: stock/templates/stock/item_base.html:170
-#: templates/js/translated/build.js:1184
+#: templates/js/translated/build.js:1179
#: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1786
-#: templates/js/translated/stock.js:2615
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:242
msgid "Batch"
@@ -1337,7 +1344,7 @@ msgstr ""
#: build/templates/build/detail.html:126
#: order/templates/order/order_base.html:149
#: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
msgid "Created"
msgstr ""
@@ -1357,7 +1364,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
msgid "Unallocate stock"
msgstr ""
@@ -1387,7 +1394,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
+#: company/templates/company/detail.html:85
#: part/templates/part/category.html:177 templates/js/translated/order.js:926
msgid "Order Parts"
msgstr ""
@@ -1463,8 +1470,8 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:82
#: order/templates/order/sales_order_detail.html:129
@@ -1478,11 +1485,11 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1494,18 +1501,6 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
@@ -1729,7 +1724,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
@@ -2102,7 +2097,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1245 common/models.py:1574
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2283,160 +2278,176 @@ msgid "Display parts in search preview window"
msgstr ""
#: common/models.py:1429
-msgid "Hide Inactive Parts"
+msgid "Seach Supplier Parts"
msgstr ""
#: common/models.py:1430
-msgid "Excluded inactive parts from search preview window"
+msgid "Display supplier parts in search preview window"
msgstr ""
#: common/models.py:1436
-msgid "Search Categories"
+msgid "Search Manufacturer Parts"
msgstr ""
#: common/models.py:1437
-msgid "Display part categories in search preview window"
+msgid "Display manufacturer parts in search preview window"
msgstr ""
#: common/models.py:1443
-msgid "Search Stock"
+msgid "Hide Inactive Parts"
msgstr ""
#: common/models.py:1444
-msgid "Display stock items in search preview window"
+msgid "Excluded inactive parts from search preview window"
msgstr ""
#: common/models.py:1450
-msgid "Hide Unavailable Stock Items"
+msgid "Search Categories"
msgstr ""
#: common/models.py:1451
-msgid "Exclude stock items which are not available from the search preview window"
+msgid "Display part categories in search preview window"
msgstr ""
#: common/models.py:1457
-msgid "Search Locations"
+msgid "Search Stock"
msgstr ""
#: common/models.py:1458
-msgid "Display stock locations in search preview window"
+msgid "Display stock items in search preview window"
msgstr ""
#: common/models.py:1464
-msgid "Search Companies"
+msgid "Hide Unavailable Stock Items"
msgstr ""
#: common/models.py:1465
-msgid "Display companies in search preview window"
+msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
#: common/models.py:1471
-msgid "Search Purchase Orders"
+msgid "Search Locations"
msgstr ""
#: common/models.py:1472
-msgid "Display purchase orders in search preview window"
+msgid "Display stock locations in search preview window"
msgstr ""
#: common/models.py:1478
-msgid "Exclude Inactive Purchase Orders"
+msgid "Search Companies"
msgstr ""
#: common/models.py:1479
-msgid "Exclude inactive purchase orders from search preview window"
+msgid "Display companies in search preview window"
msgstr ""
#: common/models.py:1485
-msgid "Search Sales Orders"
+msgid "Search Purchase Orders"
msgstr ""
#: common/models.py:1486
-msgid "Display sales orders in search preview window"
+msgid "Display purchase orders in search preview window"
msgstr ""
#: common/models.py:1492
-msgid "Exclude Inactive Sales Orders"
+msgid "Exclude Inactive Purchase Orders"
msgstr ""
#: common/models.py:1493
-msgid "Exclude inactive sales orders from search preview window"
+msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
#: common/models.py:1499
-msgid "Search Preview Results"
+msgid "Search Sales Orders"
msgstr ""
#: common/models.py:1500
-msgid "Number of results to show in each section of the search preview window"
+msgid "Display sales orders in search preview window"
msgstr ""
#: common/models.py:1506
-msgid "Show Quantity in Forms"
+msgid "Exclude Inactive Sales Orders"
msgstr ""
#: common/models.py:1507
-msgid "Display available part quantity in some forms"
+msgid "Exclude inactive sales orders from search preview window"
msgstr ""
#: common/models.py:1513
-msgid "Escape Key Closes Forms"
+msgid "Search Preview Results"
msgstr ""
#: common/models.py:1514
-msgid "Use the escape key to close modal forms"
+msgid "Number of results to show in each section of the search preview window"
msgstr ""
#: common/models.py:1520
-msgid "Fixed Navbar"
+msgid "Show Quantity in Forms"
msgstr ""
#: common/models.py:1521
-msgid "The navbar position is fixed to the top of the screen"
+msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:1527
-msgid "Date Format"
+msgid "Escape Key Closes Forms"
msgstr ""
#: common/models.py:1528
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1534
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1535
+msgid "The navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1541
+msgid "Date Format"
+msgstr ""
+
+#: common/models.py:1542
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1556 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1557
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1625 company/forms.py:39
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: common/models.py:1632 company/serializers.py:285
+#: company/templates/company/supplier_part.html:263 order/models.py:975
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1633
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1793 common/models.py:1930
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1794
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1803
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1808 part/models.py:973 plugin/models.py:105
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2444,67 +2455,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1809
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1823
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1824
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1831
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1832
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1897
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1898
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1906
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1907
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1914
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1915
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1921
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1922
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1931
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1936
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1937
msgid "Was the work on this message finished?"
msgstr ""
@@ -2558,7 +2569,7 @@ msgstr ""
#: company/models.py:104 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
msgid "Website"
msgstr ""
@@ -2654,9 +2665,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
#: templates/js/translated/table_filters.js:411
msgid "Manufacturer"
msgstr ""
@@ -2667,8 +2679,10 @@ msgstr ""
#: company/models.py:331 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1804
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
#: templates/js/translated/part.js:246 templates/js/translated/part.js:956
msgid "MPN"
msgstr ""
@@ -2698,8 +2712,9 @@ msgstr ""
#: company/models.py:427
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
@@ -2710,7 +2725,7 @@ msgstr ""
#: company/models.py:434 part/models.py:940 part/models.py:2549
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
@@ -2723,11 +2738,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1564
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
#: templates/js/translated/part.js:216 templates/js/translated/part.js:924
#: templates/js/translated/table_filters.js:415
msgid "Supplier"
@@ -2738,8 +2754,9 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1791
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
@@ -2776,7 +2793,7 @@ msgstr ""
#: company/models.py:587 company/templates/company/supplier_part.html:118
#: stock/models.py:631 stock/templates/stock/item_base.html:245
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1922
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
@@ -2806,7 +2823,7 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
msgid "Company"
msgstr ""
@@ -2824,7 +2841,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
msgid "Edit Company"
msgstr ""
@@ -2847,12 +2864,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
#: order/templates/order/sales_order_base.html:116 stock/models.py:650
#: stock/models.py:651 stock/serializers.py:714
#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2251
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
#: templates/js/translated/table_filters.js:419
msgid "Customer"
msgstr ""
@@ -2871,8 +2888,8 @@ msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
-#: templates/InvenTree/search.html:118
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2886,32 +2903,24 @@ msgstr ""
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
#: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
#: part/templates/part/category.html:176
msgid "Order parts"
msgstr ""
#: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
#: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2919,88 +2928,76 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
#: company/templates/company/sidebar.html:12
#: company/templates/company/supplier_part_sidebar.html:7
#: 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:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:275 templates/navbar.html:50
#: users/models.py:43
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
#: company/templates/company/sidebar.html:20
#: 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:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:299 templates/navbar.html:61
#: users/models.py:44
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
#: company/templates/company/index.html:8
msgid "Supplier List"
msgstr ""
#: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -3013,12 +3010,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
msgid "Delete manufacturer part"
msgstr ""
@@ -3034,55 +3031,46 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:119
#: company/templates/company/supplier_part.html:15 company/views.py:41
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
#: part/templates/part/detail.html:363
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:164
+#: 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:179 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
#: part/templates/part/detail.html:184
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
@@ -3102,18 +3090,18 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:615
#: stock/templates/stock/item_base.html:238
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:884
-#: templates/js/translated/stock.js:1879
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
msgid "Delete supplier part"
msgstr ""
@@ -3188,11 +3176,11 @@ msgstr ""
#: part/templates/part/part_sidebar.html:14
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
#: templates/InvenTree/settings/sidebar.html:43
#: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
#: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
#: templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3218,8 +3206,8 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2316 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -3231,7 +3219,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
@@ -3240,7 +3228,7 @@ msgstr ""
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
@@ -3330,313 +3318,313 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:130
+#: order/models.py:137
msgid "Order description"
msgstr ""
-#: order/models.py:132 order/models.py:1216
+#: order/models.py:139 order/models.py:1274
msgid "Link to external page"
msgstr ""
-#: order/models.py:140
+#: order/models.py:147
msgid "Created By"
msgstr ""
-#: order/models.py:147
+#: order/models.py:154
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:152
+#: order/models.py:159
msgid "Order notes"
msgstr ""
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
msgid "Order reference"
msgstr ""
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
msgid "Purchase order status"
msgstr ""
-#: order/models.py:253
+#: order/models.py:311
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1573
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:256
+#: order/models.py:314
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:263
+#: order/models.py:321
msgid "received by"
msgstr ""
-#: order/models.py:268
+#: order/models.py:326
msgid "Issue Date"
msgstr ""
-#: order/models.py:269
+#: order/models.py:327
msgid "Date order was issued"
msgstr ""
-#: order/models.py:274
+#: order/models.py:332
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:275
+#: order/models.py:333
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:281
+#: order/models.py:339
msgid "Date order was completed"
msgstr ""
-#: order/models.py:310
+#: order/models.py:368
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:456
+#: order/models.py:514
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:601
+#: order/models.py:659
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:607
+#: order/models.py:665
msgid "Customer Reference "
msgstr ""
-#: order/models.py:607
+#: order/models.py:665
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:612
+#: order/models.py:670
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2298 templates/js/translated/order.js:2449
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:622
+#: order/models.py:680
msgid "shipped by"
msgstr ""
-#: order/models.py:688
+#: order/models.py:746
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:692
+#: order/models.py:750
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:695
+#: order/models.py:753
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:698
+#: order/models.py:756
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:878
+#: order/models.py:936
msgid "Item quantity"
msgstr ""
-#: order/models.py:884
+#: order/models.py:942
msgid "Line item reference"
msgstr ""
-#: order/models.py:886
+#: order/models.py:944
msgid "Line item notes"
msgstr ""
-#: order/models.py:891
+#: order/models.py:949
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:909
+#: order/models.py:967
msgid "Context"
msgstr ""
-#: order/models.py:910
+#: order/models.py:968
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:918
+#: order/models.py:976
msgid "Unit price"
msgstr ""
-#: order/models.py:951
+#: order/models.py:1009
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:958
+#: order/models.py:1016
msgid "deleted"
msgstr ""
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1299
-#: templates/js/translated/order.js:2905
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1542
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1856
-#: templates/js/translated/stock.js:2421
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
msgid "Purchase Order"
msgstr ""
-#: order/models.py:984
+#: order/models.py:1042
msgid "Supplier part"
msgstr ""
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1318 templates/js/translated/order.js:1906
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:992
+#: order/models.py:1050
msgid "Number of items received"
msgstr ""
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1000
+#: order/models.py:1058
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1008
+#: order/models.py:1066
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1079
+#: order/models.py:1137
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1084
+#: order/models.py:1142
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1171
+#: order/models.py:1229
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1178
+#: order/models.py:1236
msgid "Checked By"
msgstr ""
-#: order/models.py:1179
+#: order/models.py:1237
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1187
+#: order/models.py:1245
msgid "Shipment number"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1252
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1201
+#: order/models.py:1259
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1260
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1209
+#: order/models.py:1267
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1268
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1227
+#: order/models.py:1285
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1230
+#: order/models.py:1288
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1337 order/models.py:1339
+#: order/models.py:1395 order/models.py:1397
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1343
+#: order/models.py:1401
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1345
+#: order/models.py:1403
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1406
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1352
+#: order/models.py:1410
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1358 order/serializers.py:1008
+#: order/models.py:1416 order/serializers.py:1008
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1361
+#: order/models.py:1419
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1362
+#: order/models.py:1420
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1428
msgid "Line"
msgstr ""
-#: order/models.py:1378 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1379
+#: order/models.py:1437
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1391 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1392
+#: order/models.py:1450
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1395
+#: order/models.py:1453
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3842,7 +3830,12 @@ msgstr ""
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
msgid "Edit Purchase Order"
msgstr ""
@@ -3873,9 +3866,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
-#: templates/js/translated/order.js:2524 templates/js/translated/stock.js:570
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
#: templates/js/translated/stock.js:738
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -3939,7 +3932,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
msgid "Add Order Line"
msgstr ""
@@ -3962,7 +3955,7 @@ msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
msgid "Complete Sales Order"
msgstr ""
@@ -3971,7 +3964,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2264
+#: templates/js/translated/order.js:2471
msgid "Customer Reference"
msgstr ""
@@ -3981,7 +3974,7 @@ msgstr ""
msgid "Completed Shipments"
msgstr ""
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
msgid "Edit Sales Order"
msgstr ""
@@ -3995,7 +3988,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -4123,7 +4116,7 @@ msgid "Part Category"
msgstr ""
#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
#: users/models.py:38
msgid "Part Categories"
msgstr ""
@@ -4134,7 +4127,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
#: templates/navbar.html:24 users/models.py:39
msgid "Parts"
msgstr ""
@@ -4212,7 +4205,7 @@ msgstr ""
#: part/models.py:842 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
@@ -4326,7 +4319,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
@@ -4458,7 +4451,7 @@ msgid "BOM quantity for this BOM item"
msgstr ""
#: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
@@ -4492,7 +4485,7 @@ msgid "BOM line checksum"
msgstr ""
#: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
@@ -4503,7 +4496,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
#: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
@@ -4519,35 +4512,35 @@ msgstr ""
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:3006
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:3028
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:3040
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3048
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:3059
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:3063
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:3063
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:3095
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4724,6 +4717,11 @@ msgstr ""
msgid "New Part"
msgstr ""
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
@@ -4912,46 +4910,46 @@ msgstr ""
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -5094,8 +5092,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
#: templates/js/translated/model_renderers.js:192
#: templates/js/translated/part.js:581 templates/js/translated/part.js:658
msgid "Inactive"
@@ -5111,7 +5109,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3336
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5126,7 +5124,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
msgid "Can Build"
msgstr ""
@@ -5184,7 +5182,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
msgid "No supplier pricing available"
msgstr ""
@@ -5304,7 +5302,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
msgid "Supplier Cost"
msgstr ""
@@ -5543,7 +5541,7 @@ msgstr ""
msgid "Barcode associated with Stock Item"
msgstr ""
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
msgid "Label printing failed"
msgstr ""
@@ -5785,10 +5783,10 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:655 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:115 templates/js/translated/order.js:3022
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
msgid "Serial Number"
msgstr ""
@@ -5809,7 +5807,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1590 templates/js/translated/stock.js:2349
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
msgid "Date"
msgstr ""
@@ -5828,7 +5826,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2589
msgid "Serial"
msgstr ""
@@ -5948,7 +5946,7 @@ msgid "Destination Sales Order"
msgstr ""
#: stock/models.py:713 stock/templates/stock/item_base.html:429
-#: templates/js/translated/stock.js:1826
+#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
@@ -6228,11 +6226,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2742
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
msgid "Add Test Result"
msgstr ""
@@ -6390,7 +6388,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:394
-#: templates/js/translated/build.js:1710
+#: templates/js/translated/build.js:1693
msgid "No location set"
msgstr ""
@@ -6419,7 +6417,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:442
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1832
msgid "Last Updated"
msgstr ""
@@ -6503,8 +6501,8 @@ msgstr ""
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:238 users/models.py:40
msgid "Stock Locations"
msgstr ""
@@ -7348,8 +7346,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
#: templates/js/translated/order.js:928 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -7621,14 +7619,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
#: templates/js/translated/part.js:530
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7663,67 +7661,67 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
msgid "Error 405: Method Not Allowed"
msgstr ""
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
msgid "Error code"
msgstr ""
@@ -7784,7 +7782,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
msgid "Invalid server response"
msgstr ""
@@ -7866,7 +7864,7 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:709 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
@@ -7951,84 +7949,84 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
msgid "Delete selected BOM items?"
msgstr ""
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
msgid "Load BOM for subassembly"
msgstr ""
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
#: templates/js/translated/part.js:690
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
msgid "Inherited from parent BOM"
msgstr ""
@@ -8150,262 +8148,270 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
msgid "Allocated Stock"
msgstr ""
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
msgid "No tracked BOM items for this build"
msgstr ""
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
msgid "Completed Tests"
msgstr ""
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
msgid "No required tests for this build"
msgstr ""
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3059
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3060
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3346
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3426
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3419
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:756 templates/js/translated/order.js:2586
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2587
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2535
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2601
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2698
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2775
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
msgid "If a location is specifed, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
msgstr ""
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2286
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2528
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:506
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
#: templates/js/translated/part.js:650
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
#: templates/js/translated/part.js:654
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
msgid "No supplier parts found"
msgstr ""
@@ -8443,61 +8449,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
msgid "Select Columns"
msgstr ""
@@ -8571,62 +8577,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
msgid "Error requesting form data"
msgstr ""
@@ -8824,7 +8830,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2089
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
msgid "Stock Status"
msgstr ""
@@ -8848,217 +8854,217 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1531 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1556 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1606 templates/js/translated/order.js:2306
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1680 templates/js/translated/order.js:3478
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1697 templates/js/translated/order.js:3500
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1710 templates/js/translated/order.js:3511
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1753
+#: templates/js/translated/order.js:1856
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1780 templates/js/translated/order.js:3235
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:3260 templates/js/translated/order.js:3745
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1849 templates/js/translated/order.js:2052
-#: templates/js/translated/order.js:3276 templates/js/translated/order.js:3761
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1890 templates/js/translated/order.js:3318
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
#: templates/js/translated/part.js:979
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1949 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3432
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:1954 templates/js/translated/order.js:3433
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1955 templates/js/translated/order.js:3437
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2101 templates/js/translated/order.js:3810
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2102 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2103 templates/js/translated/order.js:3812
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2133 templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2154 templates/js/translated/order.js:3863
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2165 templates/js/translated/order.js:3874
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2176
+#: templates/js/translated/order.js:2279
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2217
+#: templates/js/translated/order.js:2392
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:2462
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2342
+#: templates/js/translated/order.js:2549
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2345
+#: templates/js/translated/order.js:2552
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2350
+#: templates/js/translated/order.js:2557
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2370
+#: templates/js/translated/order.js:2577
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2387
+#: templates/js/translated/order.js:2594
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:2628
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2431
+#: templates/js/translated/order.js:2638
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2455
+#: templates/js/translated/order.js:2662
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2461
+#: templates/js/translated/order.js:2668
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2465
+#: templates/js/translated/order.js:2672
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:2634
+#: templates/js/translated/order.js:2841
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:2685
+#: templates/js/translated/order.js:2892
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:2686
+#: templates/js/translated/order.js:2893
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:2894
+#: templates/js/translated/order.js:3101
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2975
+#: templates/js/translated/order.js:3182
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2992
+#: templates/js/translated/order.js:3199
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2993
+#: templates/js/translated/order.js:3200
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3036 templates/js/translated/order.js:3125
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3044 templates/js/translated/order.js:3134
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3416
+#: templates/js/translated/order.js:3623
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3422
+#: templates/js/translated/order.js:3629
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3429 templates/js/translated/order.js:3627
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3441
+#: templates/js/translated/order.js:3648
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3444
+#: templates/js/translated/order.js:3651
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3526
+#: templates/js/translated/order.js:3733
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3635
+#: templates/js/translated/order.js:3842
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3649
+#: templates/js/translated/order.js:3856
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:3885
+#: templates/js/translated/order.js:4092
msgid "No matching lines"
msgstr ""
@@ -9240,7 +9246,7 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2247
+#: templates/js/translated/stock.js:2238
msgid "Display as list"
msgstr ""
@@ -9248,7 +9254,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2266
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
msgid "Display as tree"
msgstr ""
@@ -9256,7 +9262,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2310
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
msgid "Path"
msgstr ""
@@ -9264,12 +9270,12 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
msgid "Delete test result"
msgstr ""
@@ -9390,11 +9396,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9554,204 +9560,204 @@ msgstr ""
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1722
+#: templates/js/translated/stock.js:1712
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1717
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1730
+#: templates/js/translated/stock.js:1720
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1730
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1734
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1746
+#: templates/js/translated/stock.js:1736
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1743
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1755
+#: templates/js/translated/stock.js:1745
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1747
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1761
+#: templates/js/translated/stock.js:1751
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1802
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1894
+#: templates/js/translated/stock.js:1884
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1932
+#: templates/js/translated/stock.js:1922
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2104
+#: templates/js/translated/stock.js:2095
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2118
+#: templates/js/translated/stock.js:2109
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2119
+#: templates/js/translated/stock.js:2110
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2374
+#: templates/js/translated/stock.js:2365
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2390
+#: templates/js/translated/stock.js:2381
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2412
+#: templates/js/translated/stock.js:2403
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2431
+#: templates/js/translated/stock.js:2422
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2450
+#: templates/js/translated/stock.js:2441
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2468
+#: templates/js/translated/stock.js:2459
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2491
+#: templates/js/translated/stock.js:2482
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2499
+#: templates/js/translated/stock.js:2490
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2575
+#: templates/js/translated/stock.js:2566
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2662
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2675
+#: templates/js/translated/stock.js:2666
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2687
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2688
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2690
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2700
+#: templates/js/translated/stock.js:2691
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2701
+#: templates/js/translated/stock.js:2692
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2702
+#: templates/js/translated/stock.js:2693
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2715
+#: templates/js/translated/stock.js:2706
msgid "Select part to install"
msgstr ""
@@ -9983,69 +9989,81 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
msgid "Export Table Data"
msgstr ""
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
msgid "Select File Format"
msgstr ""
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
#: templates/search.html:8 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
msgid "All"
msgstr ""
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index b026d309a0..85753b794b 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "Address e API peida nashod"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "تایید"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "تائید حذف"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr ""
@@ -70,72 +70,73 @@ msgstr ""
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 2d3c0cfdcb..fdfffa1ded 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "Point de terminaison de l'API introuvable"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration"
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Entrer la date"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Confirmer"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Confirmer la suppression"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Confirmer la suppression de cet élément"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Entrer le mot de passe"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Entrer le nouveau mot de passe"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Confirmez le mot de passe"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Confirmer le nouveau mot de passe"
@@ -70,72 +70,73 @@ msgstr "Email (encore)"
msgid "Email address confirmation"
msgstr "Confirmation de l'adresse email"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Vous devez taper le même e-mail à chaque fois."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Dupliquer le numéro : {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Plage de groupe invalide : {g}"
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Groupe invalide : {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Séquence de groupe invalide : {g}"
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Invalide/aucun groupe {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Fichier manquant"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Lien externe manquant"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Pièce jointe"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Sélectionnez un fichier à joindre"
msgid "Link"
msgstr "Lien"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Lien vers une url externe"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Commentaire"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Utilisateur"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Le nom de fichier ne doit pas être vide"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Répertoire de pièce jointe invalide"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Le nom de fichier contient le caractère illégal '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Extension manquante du nom de fichier"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Une pièce jointe avec ce nom de fichier existe déjà"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Erreur lors du renommage du fichier"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Choix invalide"
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Nom"
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Nom du fichier"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Valeur non valide"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Fichier de données"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Sélectionnez le fichier de données à envoyer"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Format de fichier non supporté"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Fichier trop volumineux"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Pas de colonnes trouvées dans le fichier"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Par de lignes de données trouvées dans le fichier"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Pas de lignes de données fournies"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Pas de colonne de données fournie"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Colonne requise manquante : {name}"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Colonne duliquée : '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Tchèque"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Grec"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Espagnol"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Farsi / Perse"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hébreu"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Hongrois"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italien"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japonais"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Coréen"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Néerlandais"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norvégien"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr "Portugais"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr "Portugais (Brésilien)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Russe"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Suédois"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thaïlandais"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamien"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Chinois"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Échec de la vérification du processus d'arrière-plan"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Backend d'email non configuré"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "Échec des contrôles de santé du système"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "En attente"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Placé"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Terminé"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Annulé"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Perdu"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Retourné"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Expédié"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Attention requise"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Endommagé"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Détruit"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Rejeté"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Reçu contre bon de commande"
msgid "Production"
msgstr "Fabrication"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Code de devise invalide"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Caractère invalide dans le nom de la pièce"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "L'IPN doit correspondre au modèle de regex {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "La référence doit correspondre au modèle {pattern}"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Caractère invalide dans le nom ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "La valeur de surplus ne doit pas être négative"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Le surplus ne doit pas dépasser 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr "Valeur invalide pour le dépassement"
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Supprimer cet élément"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Cochez la case pour confirmer la suppression de l'élément"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Modifier les informations utilisateur"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Définir le mot de passe"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Les mots de passe doivent correspondre"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Informations système"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "Choix invalide pour la fabrication parente"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Ordre de Fabrication"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Ordres de Fabrication"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Référence"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Brève description de la fabrication"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Fabrication parente"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder associé a cette fabrication"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "BuildOrder associé a cette fabrication"
msgid "Part"
msgstr "Pièce"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Bon de commande de référence"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Commande de vente à laquelle cette construction est allouée"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Emplacement d'origine"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Sélectionner l'emplacement à partir duquel le stock doit être pris pour cette construction (laisser vide pour prendre à partir de n'importe quel emplacement de stock)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Emplacement cible"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Quantité a fabriquer"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Nombre de stock items à construire"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Articles terminés"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Nombre d'articles de stock qui ont été terminés"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "État de la construction"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Code de statut de construction"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Code de lot"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Code de lot pour ce build output"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Date d'achèvement cible"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Date d'achèvement"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "achevé par"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Émis par"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Utilisateur ayant émis cette commande de construction"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Utilisateur responsable de cette commande de construction"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Notes"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Notes de construction supplémentaires"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Pas d'ordre de production défini"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "L'ordre de production a déjà été réalisé"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "L'ordre de production de correspond pas à l'ordre de commande"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})"
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantité doit être de 1 pour stock sérialisé"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Assemblage"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "Construction à laquelle allouer des pièces"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "Construction à laquelle allouer des pièces"
msgid "Stock Item"
msgstr "Article en stock"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Stock d'origine de l'article"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Stock d'origine de l'article"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Stock d'origine de l'article"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Stock d'origine de l'article"
msgid "Quantity"
msgstr "Quantité"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr "Quantité de stock à allouer à la construction"
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Installer dans"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Stock de destination de l'article"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr "Sortie d'assemblage"
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr "L'ordre de production ne correspond pas à l'ordre parent"
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr "La pièce en sortie ne correspond pas à la pièce de l'ordre de construction"
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr "Cet ordre de production a déjà été produit"
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr "Cet ordre de production n'est pas complètement attribué"
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr "Quantité entière requise pour les pièces à suivre"
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce"
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Numéros de série"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Entrer les numéros de séries pour la fabrication"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr "Allouer automatiquement les numéros de série"
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants"
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr "Le numéro de série suivant existe déjà"
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr "Une liste d'ordre de production doit être fourni"
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr "Une liste d'ordre de production doit être fourni"
msgid "Location"
msgstr "Emplacement"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr "Emplacement des ordres de production achevés"
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr "Emplacement des ordres de production achevés"
msgid "Status"
msgstr "État"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr "Accepter l'allocation incomplète"
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Compléter les sorties si le stock n'a pas été entièrement alloué"
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr "Supprimer le stock alloué"
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr "Accepter les non-alloués"
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production"
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "Le stock requis n'a pas encore été totalement alloué"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr "Accepter les incomplèts"
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés"
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr "La quantité nécessaire n'a pas encore été complétée"
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr "L'ordre de production a des sorties incomplètes"
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr "Aucune sortie de construction n'a été créée pour cet ordre de construction"
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr "Sortie d'assemblage"
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantité disponible ({q}) dépassée"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr "Emplacements exclus"
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr "Stock requis pour la commande de construction"
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction"
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Terminé"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr "Stock d'origine"
msgid "Stock can be taken from any available location."
msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Destination"
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Supprimer l'ordre de construction"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Format de fichier non pris en charge : {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Erreur de lecture du fichier (encodage invalide)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Erreur de lecture du fichier (format invalide)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Erreur de lecture du fichier (dimension incorrecte)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Erreur de lecture du fichier (les données pourraient être corrompues)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Fichier"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Sélectionner un fichier à téléverser"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} Fichier"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "Sélectionner le fichier {name} à uploader"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr "Valeur du paramètre"
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr "La valeur choisie n'est pas une option valide"
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "La valeur doit être une valeur booléenne"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr "La valeur doit être un nombre entier"
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr "La chaîne de caractères constituant la clé doit être unique"
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Pas de groupe"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Redémarrage nécessaire"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur"
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr "Chaîne de caractères descriptive pour l'instance serveur"
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr "Utiliser le nom de l'instance"
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr "Utiliser le nom de l’instance dans la barre de titre"
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Nom de la société"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Nom de société interne"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "URL de base"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "URL de base pour l'instance serveur"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Devise par défaut"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Devises par défaut"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Télécharger depuis l'URL"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Support des code-barres"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Activer le support du scanner de code-barres"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce"
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Autoriser les IPN dupliqués"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Permettre à plusieurs pièces de partager le même IPN"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Autoriser l'édition de l'IPN"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr "Copier les données des paramètres de la pièce"
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce"
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr "Copier les données de test de la pièce"
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr "Copier les données de test par défaut lors de la duplication d'une pièce"
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr "Copier les templates de paramètres de catégorie"
-#: common/models.py:891
+#: common/models.py:814
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:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Les pièces sont des templates par défaut"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
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:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Composant"
-#: common/models.py:912
+#: common/models.py:835
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:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Achetable"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Les pièces sont achetables par défaut"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Vendable"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Les pièces sont vendables par défaut"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Traçable"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Les pièces sont traçables par défaut"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuelle"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Les pièces sont virtuelles par défaut"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "Afficher l'import dans les vues"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "Afficher l'assistant d'importation pour certaine vues de produits"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Afficher le prix dans les formulaires"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "Afficher le prix de la pièce dans certains formulaires"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Afficher le prix dans la BOM"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr "Inclure les informations de prix dans les tableaux de la BOM"
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr "Historique des prix"
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "Afficher les pièces connexes"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr "Afficher les pièces connexes à une pièce"
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr "Créer un stock initial"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr "Créer le stock initial lors de la création d'une pièce"
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "Prix internes"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr "Activer les prix internes pour les pièces"
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Taille de la page"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Rapports de test"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "jours"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr "Valeur préfixe référence commande client"
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr "Préfixe des commandes d'achats"
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr "Valeur préfixe référence bon de commande"
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr "Activer les mots de passe oubliés"
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr "Activer les inscriptions"
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "Activer le SSO"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "Activer le SSO sur les pages de connexion"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "Email requis"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr "Saisie automatique des utilisateurs SSO"
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr "Courriel en double"
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr "Activer l'intégration de plugins"
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr "Activer l'intégration de plugin pour ajouter des apps"
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Afficher les dernières pièces"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr "Afficher les dernières modifications du stock"
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr "Format préféré pour l'affichage des dates"
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Prix"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr "Actif"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "Composantes importées"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Étape précédente"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "URL de l'image"
@@ -2597,7 +2615,7 @@ msgstr "Point de contact"
msgid "Link to external company information"
msgstr "Lien externe vers les informations de l'entreprise"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr "est fabricant"
msgid "Does this company manufacture parts?"
msgstr "Cette entreprise fabrique-t-elle des pièces?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Devise"
@@ -2635,16 +2653,16 @@ msgstr "Devise"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr "Fabricant"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Sélectionner un fabricant"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Sélectionner un fabricant"
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Valeur"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr "Fournisseur"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr "Commande multiple"
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr "Ajouter une nouvelle image"
msgid "Download image from URL"
msgstr "Télécharger l'image depuis l'URL"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Commandes d'achat"
@@ -2950,8 +2969,8 @@ msgstr "Nouvelle commande achat"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "Ventes"
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr "Liste des Fournisseurs"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "Supprimer les pièces du fournisseur"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Supprimer"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Éléments en stock"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Nouveau Fournisseur"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Nouveau Fabricant"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Clients"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Nouveaux Clients"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Entreprises"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Nouvelle Entreprise"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "Activé"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Hauteur [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Filtres"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr "Description de la commande"
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr "Lien vers une page externe"
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr "Créé par"
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr "Notes de commande"
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr "Nom de l’expédition"
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr "expédié par"
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr "La commande ne peut pas être terminée car aucune pièce n'a été assignée"
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr "Seule une commande en attente peut être marquée comme terminée"
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "La commande ne peut pas être terminée car il y a des envois incomplets"
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr "Nombre d'élement"
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr "Contexte"
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr "Commande"
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr "Commande"
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr "Pièce fournisseur"
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr "Reçu"
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "Prix d'achat"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr "Prix de vente"
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr "Ligne"
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr "Envoi"
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr "Article"
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr "Devise *"
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr "La commande ne peut pas être annulée"
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr "La commande n'est pas ouverte"
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr "Champ d'identifiant unique"
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr "Une quantité entière doit être fournie pour les pièces tracables"
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr "Entrez les numéros de série à allouer"
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr "Aucune correspondance trouvée pour les numéros de série suivants"
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr "Les numéros de série suivants sont déjà alloués"
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr "Expéditions en attente"
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr "Prix introuvable"
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr "En Commande"
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Catégorie de composant"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "Catégories de composants"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Composantes"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr "Les prochains numéros de série disponibles sont"
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr "Le prochain numéro de série disponible est"
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr "Le numéro de série le plus récent est"
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Description du composant"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr "Catégorie"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Révision"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr "Requis"
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr "Données"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "ID de composant"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Surplus"
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr "Devise d'achat de l'item"
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr "Aucun"
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Aucune action spécifiée"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "Le paramètre barcode_data doit être fourni"
@@ -5494,31 +5515,31 @@ msgstr "Aucune correspondance trouvée pour les données du code-barres"
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Vous devez fournir le paramètre stockitem"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Aucun article d'inventaire correspondant trouvé"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr "Le code-barres correspond déjà à l'objet StockItem"
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr "Le code-barres correspond déjà à l'objet Stock Location"
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr "Le code-barres correspond déjà à l'objet Part"
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr "Le code-barres correspond déjà à l'objet Stock Item"
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr "Code-barres associé à l'article en stock"
@@ -5526,226 +5547,226 @@ msgstr "Code-barres associé à l'article en stock"
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr "Non du Plugin"
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr "Numérique"
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr "Aucun objet valide n'a été fourni au modèle"
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr "Nom du modèle"
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr "Filtres de composants"
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr "Extrait "
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr "Elément"
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr "Résultat"
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr "Propriétaire"
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr "Sélectionner un propriétaire"
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr "Il existe déjà un article en stock avec ce numéro de série"
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr "La quantité doit être de 1 pour un article avec un numéro de série"
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1"
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr "Numéro de série pour cet article"
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr "Les numéros de série doivent être une liste de nombres entiers"
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr "La quantité ne correspond pas au nombre de numéros de série"
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Les numéros de série existent déja : {exists}"
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr "Entrez le nombre d'articles en stock à sérialiser"
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr "Entrez les numéros de série pour les nouveaux articles"
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce"
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Les numéros de série existent déjà"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr "Cocher la case de confirmation"
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr "Ajouter un lien"
msgid "Add Attachment"
msgstr "Ajouter une pièce jointe"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr "Redémarrage du serveur nécessaire"
@@ -7704,31 +7733,27 @@ msgstr "Code d'erreur non géré"
msgid "Error code"
msgstr "Code d’erreur"
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr "Aucune pièce jointe trouvée"
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "Modifier la pièce jointe"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr "Confirmer la suppression"
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "Supprimer la pièce jointe"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr "Date d'upload"
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr "Modifier la pièce jointe"
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr "Supprimer la pièce jointe"
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr "Commander des stocks"
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr "Commande en retard"
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr "Livré au client"
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr "Allouer des numéros de série"
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr "Acheter du stock"
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr "Calculer le prix"
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr "Allouer des numéros de série"
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr "Supprimer"
msgid "Add Stock"
msgstr "Ajouter du stock"
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr "Ajouter"
@@ -10250,51 +10276,51 @@ msgstr "Utilisateurs"
msgid "Select which users are assigned to this group"
msgstr "Sélectionner quels utilisateurs sont assignés à ce groupe"
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr "Les utilisateurs suivants sont membres de plusieurs groupes:"
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "Informations personnelles"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Droits"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "Dates importantes"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "Droit défini"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "Groupe"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Vue"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Droit de voir des éléments"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Droit d'ajouter des éléments"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "Modifier"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Droit de modifier des élément"
-#: users/models.py:220
+#: users/models.py:219
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 561693838a..d1f475ce45 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "הזן תאריך סיום"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "אשר"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "אשר מחיקה"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "אשר מחיקה"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "הכנס סיסמה"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "הכנס סיסמה חדשה"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "אישור סיסמה"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "אשר סיסמה חדשה"
@@ -70,72 +70,73 @@ msgstr "אימייל (שנית)"
msgid "Email address confirmation"
msgstr "אישור כתובת אימייל"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "חובה לרשום את אותו אימייל בכל פעם."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "קבוצה שגויה: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "קבוצה שגויה / לא נמצאה {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "מספרים סידוריים לא נמצאו"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "קובץ חסר"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "חסר קישור חיצוני"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "קובץ מצורף"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "בחר קובץ לצירוף"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "בחר קובץ לצירוף"
msgid "Link"
msgstr "קישור"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "קישור חיצוני"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "הערה"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "הערת קובץ"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "משתמש"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "תאריך העלאה"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "חובה למלא שם קובץ"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "תיקיית קובץ שגויה"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "שם הקובץ מכיל תו '{c}' שאינו חוקי"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "שגיאה בשינוי שם פריט"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "בחירה שגויה"
msgid "Name"
msgstr "שם"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "שם"
msgid "Description"
msgstr "תיאור"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "תיאור (לא חובה)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "מקור"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "שם קובץ"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "גרמנית"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "יוונית"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "אנגלית"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "ספרדית"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "ספרדית (מקסיקנית)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "צרפתית"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "עברית"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "איטלקית"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "יפנית"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "קוריאנית"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "הולנדית"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "נורווגית"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "פולנית"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "רוסית"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "שוודית"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "תאילנדית"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "טורקית"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "ווייטנאמית"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "סינית"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "בהמתנה"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "מוקם"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "הושלם"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "מבוטל"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "אבד"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "הוחזר"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "נשלח"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "מצב טוב"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "דרושה תשומת לב"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "פגום"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "הרוס"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "נדחה"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr "ייצור"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "קוד מטבע לא מאושר"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "מחק פריט"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "ערוך מידע אודות המשתמש"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "הגדר סיסמא"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "הסיסמאות מוכרחות להיות תואמות"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "מידע אודות המערכת"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "מקט"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "תיאור קצר אודות הבנייה"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "מקור הבנייה"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr "רכיב"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "בחר רכיב לבנייה"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "כמות בניה"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr "כמות"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "מספרים סידוריים"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "לא פורטה הפעולה"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "פעולה מבוקשת לא נמצאה"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "הפרמטר barcode_data מוכרח להיות תקין"
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 d8f48e45b9..0b2f4b37a3 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API funkciót nem találom"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr "A hiba részleteit megtalálod az admin panelen"
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Dátum megadása"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Megerősítés"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Törlés megerősítése"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Tétel törlés megerősítése"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Jelszó megadása"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Új jelszó megadása"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Jelszó megerősítése"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Új jelszó megerősítése"
@@ -70,72 +70,73 @@ msgstr "Email (újra)"
msgid "Email address confirmation"
msgstr "Email cím megerősítés"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Mindig ugyanazt az email címet kell beírni."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Duplikált sorozatszám: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Nem megfelelő mennyiség"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Üres sorozatszám"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Érvénytelen csoport tartomány: {g}"
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Érvénytelen csoport: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Érvénytelen csoport szekvencia: {g}"
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Érvénytelen vagy nemlétező csoport {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Nem található sorozatszám"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "A megadott számú egyedi sorozatszám ({s}) meg kell egyezzen a darabszámmal ({q})"
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Hiányzó fájl"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Hiányzó külső link"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Melléklet"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Válaszd ki a mellekelni kívánt fájlt"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Link külső URL-re"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Megjegyzés"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Leírás, bővebb infó"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Felhasználó"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "feltöltés dátuma"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "A fájlnév nem lehet üres"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Érvénytelen melléklet mappa"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Fájlnévben érvénytelen karakter van '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Fájlnév kiterjesztése hiányzik"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Ilyen fájlnévvel már létezik melléklet"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Hiba a fájl átnevezésekor"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Érvénytelen választás"
msgid "Name"
msgstr "Név"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Név"
msgid "Description"
msgstr "Leírás"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Leírás (opcionális)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "szülő"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Fájlnév"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Érvénytelen érték"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Adat fájl"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Fájl kiválasztása feltöltéshez"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Nem támogatott fájltípus"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Fájl túl nagy"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Nem találhatók oszlopok a fájlban"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Nincsenek adatsorok a fájlban"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Nincs adatsor megadva"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Nincs adat oszlop megadva"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Szükséges oszlop hiányzik: '{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikált oszlop: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Cseh"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Német"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Görög"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Angol"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Spanyol (Mexikói)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Fárszi/Perzsa"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Francia"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Héber"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Magyar"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Olasz"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japán"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreai"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Holland"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norvég"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Lengyel"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr "Portugál"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr "Portugál (Brazíliai)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Orosz"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Svéd"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Tháj"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Török"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnámi"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Kínai"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Háttér folyamat ellenőrzés sikertelen"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Email backend nincs beállítva"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InvenTree rendszer állapotának ellenőrzése sikertelen"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Függőben"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Kiküldve"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Kész"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Törölve"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Elveszett"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Visszaküldve"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Kiszállítva"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "Rendben"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Ellenőrizendő"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Sérült"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Megsemmisült"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Elutasított"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Megrendelésre érkezett"
msgid "Production"
msgstr "Folyamatban"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Érvénytelen pénznem kód"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Érvénytelen karakter az alkatrész névben"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN mezőnek egyeznie kell a '{pat}' mintával"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referenciának egyeznie kell a '{pattern}' mintával"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Érvénytelen karakter ({x}) a névben"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Túlszállítás nem lehet negatív"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Túlszállítás nem lehet több mint 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr "Érvénytelen érték a túlszállításra"
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Tétel törlése"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Jelöld a törlés megerősítéséhez"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Felhasználói információ módosítása"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Jelszó beállítása"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "A jelszavaknak egyeznie kell"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Rendszerinformáció"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "Hibás választás a szülő gyártásra"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Gyártási utasítás"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Gyártási utasítások"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Azonosító"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Gyártás rövid leírása"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Szülő gyártás"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
msgid "Part"
msgstr "Alkatrész"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Válassz alkatrészt a gyártáshoz"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Vevői rendelés azonosító"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Forrás hely"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Válassz helyet ahonnan készletet vegyünk el ehhez a gyártáshoz (hagyd üresen ha bárhonnan)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Cél hely"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Válassz helyet ahol a kész tételek tárolva lesznek"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Gyártási mennyiség"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Gyártandó készlet tételek száma"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Kész tételek"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Elkészült készlet tételek száma"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Gyártási állapot"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Gyártás státusz kód"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Batch kód"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Batch kód a gyártás kimenetéhez"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Létrehozás dátuma"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Befejezés cél dátuma"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Elkészítés dátuma"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "elkészítette"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Kiállította"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Felhasználó aki ezt a gyártási utasítást kiállította"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Felelős"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Felhasználó aki felelős ezért a gyártási utasításért"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Külső link"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Megjegyzések"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Extra gyártási megjegyzések"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Nincs gyártási kimenet megadva"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Gyártási kimenet már kész"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "Gyártási kimenet nem egyezik a gyártási utasítással"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})"
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Gyártás"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "Gyártás amihez készletet foglaljunk"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "Gyártás amihez készletet foglaljunk"
msgid "Stock Item"
msgstr "Készlet tétel"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Forrás készlet tétel"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Forrás készlet tétel"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Forrás készlet tétel"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Forrás készlet tétel"
msgid "Quantity"
msgstr "Mennyiség"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz"
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Beépítés ebbe"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Cél készlet tétel"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr "Gyártás kimenet"
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr "Gyártási kimenet nem egyezik a szülő gyártással"
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr "Kimeneti alkatrész nem egyezik a gyártási utasításban lévő alkatrésszel"
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr "Ez a gyártási kimenet már elkészült"
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva"
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Add meg a mennyiséget a gyártás kimenetéhez"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél"
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz"
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Sorozatszámok"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr "Sorozatszámok automatikus hozzárendelése"
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal"
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr "A következő sorozatszámok már léteznek"
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr "A gyártási kimenetek listáját meg kell adni"
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr "A gyártási kimenetek listáját meg kell adni"
msgid "Location"
msgstr "Hely"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr "A kész gyártási kimenetek helye"
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,134 +1051,134 @@ msgstr "A kész gyártási kimenetek helye"
msgid "Status"
msgstr "Állapot"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr "Hiányos foglalás elfogadása"
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Kimenetek befejezése akkor is ha a készlet nem\n"
"lett teljesen lefoglalva"
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr "Lefoglalt készlet levonása"
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Az összes lefoglalt tétel levonása a készletről"
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr "Befejezetlen kimenetek törlése"
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr "A nem befejezett gyártási kimenetek törlése"
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr "Kiosztatlanok elfogadása"
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a gyártási utastáshoz"
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "A szükséges készlet nem lett teljesen lefoglalva"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr "Befejezetlenek elfogadása"
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Fogadd el hogy a szükséges számú gyártási kimenet nem lett elérve"
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr "Szükséges gyártási mennyiség nem lett elérve"
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz"
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr "Ehhez a gyártási utasításhoz nem készült kimenet"
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr "Gyártás kimenet"
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr "A gyártási kimenetnek ugyanarra a gyártásra kell mutatnia"
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás"
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "A tételnek kell legyen készlete"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Rendelkezésre álló mennyiség ({q}) túllépve"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához"
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához"
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr "Ez a készlet tétel már le lett foglalva ehhez a gyártási kimenethez"
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr "A lefoglalandó tételeket meg kell adni"
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Készlet hely ahonnan az alkatrészek származnak (hagyd üresen ha bárhonnan)"
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr "Hely kizárása"
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr "Készlet tételek kizárása erről a kiválasztott helyről"
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr "Felcserélhető készlet"
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "A különböző helyeken lévő készlet egyenrangúan felhasználható"
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr "Készlet helyettesítés"
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr "Helyettesítő alkatrészek foglalásának engedélyezése"
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr "A gyártási utasításhoz készlet szükséges"
@@ -1242,7 +1244,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Még nincs lefoglalva a szükséges készlet"
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1275,8 +1277,8 @@ msgid "Completed"
msgstr "Kész"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1317,7 +1319,7 @@ msgstr "Készlet forrás"
msgid "Stock can be taken from any available location."
msgstr "Készlet bármely rendelkezésre álló helyről felhasználható."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Cél"
@@ -1509,929 +1511,945 @@ msgstr "Gyártási utasítás részletei"
msgid "Completed Outputs"
msgstr "Befejezett kimenetek"
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Gyártási utasítás törlése"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Nem támogatott fájl formátum: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Fájl beolvasási hiba (hibás encoding)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Fájl beolvasási hiba (hibás formátum)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Fájl beolvasási hiba (hibás dimenzió)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Fájl beolvasási hiba (sérült lehet)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Fájl"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Feltöltendő fájl kiválasztása"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} Fájl"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "{name} fájl kiválasztása feltöltéshez"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)"
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr "Beállítás értéke"
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr "A kiválasztott érték nem egy érvényes lehetőség"
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "Az érték bináris kell legyen"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr "Az érték egész szám kell legyen"
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr "Kulcs string egyedi kell legyen"
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Nincs csoport"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Újraindítás szükséges"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli"
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr "Kiszolgáló példány neve"
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr "String leíró a kiszolgáló példányhoz"
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr "Példány név használata"
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr "Példány név használata a címsorban"
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr "Verzió infók megjelenítésének tiltása"
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr "Verzió infók megjelenítése csak admin felhasználóknak"
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Cég neve"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Belső cégnév"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "Kiindulási URL"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "Kiindulási URL a kiszolgáló példányhoz"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Alapértelmezett pénznem"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Alapértelmezett pénznem"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Letöltés URL-ről"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Vonalkód támogatás"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Vonalkód olvasó engedélyezése"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr "Webkamerás vonalkód olvasás"
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr "Webkamerás kódolvasás engedélyezése a böngészőből"
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr "IPN reguláris kifejezés"
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re"
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Többször is előforduló IPN engedélyezése"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Azonos IPN használható legyen több alkatrész esetén is"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "IPN szerkesztésének engedélyezése"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr "Alkatrészjegyzék adatok másolása"
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból"
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr "Alkatrész paraméterek másolása"
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból"
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr "Alkatrész teszt adatok másolása"
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból"
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr "Kategória paraméter sablonok másolása"
-#: common/models.py:891
+#: common/models.py:814
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:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Sablon"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Gyártmány"
-#: common/models.py:905
+#: common/models.py:828
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:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Összetevő"
-#: common/models.py:912
+#: common/models.py:835
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:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Beszerezhető"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Alkatrészek alapból beszerezhetők legyenek"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Értékesíthető"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Alkatrészek alapból eladhatók legyenek"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Követésre kötelezett"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Alkatrészek alapból követésre kötelezettek legyenek"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuális"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Alkatrészek alapból virtuálisak legyenek"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "Importálás megjelenítése a nézetekben"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "Import segéd megjelenítése néhány alkatrész nézetben"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Ár megjelenítése a formokon"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "Alkatrész árak megjelenítése néhány formon"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Ár megjelenítése az alkatrészjegyzékben"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr "Árinformációk megjelenítése az alkatrészjegyzék táblákban"
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr "Ártörténet megjelenítése"
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr "Alkatrész ártörténet megjelenítése"
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "Kapcsolódó alkatrészek megjelenítése"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése"
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr "Kezdeti készlet létrehozása"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr "Kezdeti készlet megadása az alkatrész létrehozásakor"
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "Belső árak"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr "Alkatrészekhez belső ár engedélyezése"
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr "Belső ár alkatrészjegyzék árként"
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Belső ár használata (ha van) az alkatrészjegyzék árszámításában"
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr "Alkatrész név megjelenítés formátuma"
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr "Formátum az alkatrész név megjelenítéséhez"
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr "Riportok engedélyezése"
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr "Riportok előállításának engedélyezése"
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Debug mód"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr "Riportok előállítása HTML formátumban (hibakereséshez)"
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Lapméret"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "Alapértelmezett lapméret a PDF riportokhoz"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Teszt riportok"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr "Teszt riportok előállításának engedélyezése"
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr "Batch kód sablon"
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához"
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr "Készlet lejárata"
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr "Készlet lejárat kezelésének engedélyezése"
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr "Lejárt készlet értékesítése"
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr "Lejárt készlet értékesítésének engedélyezése"
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr "Álló készlet ideje"
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük"
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "nap"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr "Lejárt készlet gyártása"
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr "Gyártás engedélyezése lejárt készletből"
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr "Készlet tulajdonosok kezelése"
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr "Tuajdonosok kezelésének engedélyezése a készlet helyekre és tételekre"
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr "Gyártási utasítás azonosító előtagja"
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr "Előtag értéke a gyártási utasítás azonosítóhoz"
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr "Gyártási utasítás azonosító reguláris kifejezés"
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr "Gyártási utasítás azonosítóra illeszkedő reguláris kifejezés"
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr "Vevői rendelés azonosító előtagja"
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr "Előtag értéke a vevői rendelés azonosítóhoz"
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr "Vevői rendeléshez alapértelmezett szállítmány"
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez"
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr "Beszerzési rendelés azonosító előtagja"
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr "Előtag értéke a beszerzési rendelés azonosítóhoz"
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr "Elfelejtett jelszó engedélyezése"
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon"
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr "Regisztráció engedélyezése"
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon"
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "SSO engedélyezése"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "SSO engedélyezése a bejelentkező oldalon"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "Email szükséges"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr "Kötelező email megadás regisztrációkor"
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr "SSO felhasználók automatikus kitöltése"
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból"
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr "Email kétszer"
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét"
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr "Jelszó kétszer"
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát"
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr "Csoport regisztráláskor"
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr "Csoport amihez a frissen regisztrált felhasználók hozzá lesznek rendelve"
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr "Többfaktoros hitelesítés kényszerítése"
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk."
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr "Pluginok ellenőrzése indításkor"
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)"
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr "URL integráció engedélyezése"
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr "Navigációs integráció engedélyezése"
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr "Navigációs integráció engedélyezése a pluginok számára"
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr "App integráció engedélyezése"
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr "App hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr "Ütemezés integráció engedélyezése"
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr "Esemény integráció engedélyezése"
-#: common/models.py:1230
+#: common/models.py:1153
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:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny"
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr "Értesítésre beállított alkatrészek megjelenítése"
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr "Alkatrész értesítések megjelenítése a főoldalon"
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr "Értesítésre beállított kategóriák megjelenítése"
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon"
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Legújabb alkatrészek megjelenítése"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Legújabb alkatrészek megjelenítése a főoldalon"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr "Legfrissebb alkatrész szám"
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr "Főoldalon megjelenítendő legújabb alkatrészek"
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése"
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon"
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr "Legfrissebb készlet változások megjelenítése"
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon"
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr "Legfrissebb készlet mennyiség"
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr "Főoldalon megjelenítendő legújabb készlet tételek száma"
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr "Alacsony készlet megjelenítése"
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr "Alacsony készletek megjelenítése a főoldalon"
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr "Kimerült készlet megjelenítése"
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr "Kimerült készletek megjelenítése a főoldalon"
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr "Gyártáshoz szükséges készlet megjelenítése"
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon"
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr "Lejárt készlet megjelenítése"
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr "Lejárt készletek megjelenítése a főoldalon"
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr "Állott készlet megjelenítése"
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr "Álló készletek megjelenítése a főoldalon"
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr "Függő gyártások megjelenítése"
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr "Késésben lévő gyártások megjelenítése"
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr "Késésben lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr "Kintlévő beszerzési rendelések megjelenítése"
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon"
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr "Késésben lévő megrendelések megjelenítése"
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr "Késésben lévő megrendelések megjelenítése a főoldalon"
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr "Függő vevői rendelések megjelenítése"
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr "Függő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr "Késésben lévő vevői rendelések megjelenítése"
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr "Címke nyomtatás engedélyezése"
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr "Címke nyomtatás engedélyezése a web felületről"
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr "Beágyazott címke megjelenítés"
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett"
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr "Beágyazott riport megjelenítés"
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF riport megjelenítése a böngészőben letöltés helyett"
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr "Alkatrészek keresése"
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr "Alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr "Inaktív alkatrészek elrejtése"
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból"
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr "Kategóriák keresése"
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben"
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr "Készlet keresése"
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr "Készlet tételek megjelenítése a keresési előnézetben"
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr "Nem elérhető készlet tételek elrejtése"
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból"
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr "Helyek keresése"
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr "Készlet helyek megjelenítése a keresési előnézetben"
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr "Cégek keresése"
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr "Cégek megjelenítése a keresési előnézetben"
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr "Beszerzési rendelések keresése"
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben"
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktív beszerzési rendelések kihagyása"
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból"
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr "Vevői rendelések keresése"
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr "Vevői rendelések megjelenítése a keresési előnézetben"
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktív vevői rendelések kihagyása"
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból"
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr "Keresési előnézet eredményei"
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként"
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr "Mennyiség megjelenítése a formokon"
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon"
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr "ESC billentyű zárja be a formot"
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr "ESC billentyű használata a modális formok bezárásához"
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr "Rögzített menüsor"
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr "A menü pozíciója mindig rögzítve a lap tetején"
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr "Dátum formátum"
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr "Preferált dátum formátum a dátumok kijelzésekor"
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr "Alkatrész ütemezés"
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr "Alkatrész ütemezési információk megjelenítése"
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr "Árlépcső mennyiség"
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Ár"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr "Egységár egy meghatározott mennyiség esetén"
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr "Végpont"
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr "Végpont ahol ez a webhook érkezik"
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr "Webhook neve"
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2439,107 +2457,107 @@ msgstr "Webhook neve"
msgid "Active"
msgstr "Aktív"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr "Aktív-e ez a webhook"
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr "Token"
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr "Token a hozzáféréshez"
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr "Titok"
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr "Megosztott titok a HMAC-hoz"
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr "Üzenet azonosító"
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr "Egyedi azonosító ehhez az üzenethez"
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr "Kiszolgáló"
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr "Kiszolgáló ahonnan ez az üzenet érkezett"
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr "Fejléc"
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr "Üzenet fejléce"
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr "Törzs"
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr "Üzenet törzse"
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr "Végpont amin ez az üzenet érkezett"
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr "Dolgozott rajta"
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr "Befejeződött a munka ezzel az üzenettel?"
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Fájl feltöltése"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Mezők egyeztetése"
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr "Tételek egyeztetése"
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr "Mezők egyeztetése sikertelen"
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "Importált alkatrészek"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Előző lépés"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "Kép URL"
@@ -2598,7 +2616,7 @@ msgstr "Kapcsolattartó"
msgid "Link to external company information"
msgstr "Link a külső céginformációhoz"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Kép"
@@ -2626,9 +2644,9 @@ msgstr "gyártó-e"
msgid "Does this company manufacture parts?"
msgstr "Gyárt ez a cég alkatrészeket?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Pénznem"
@@ -2636,16 +2654,16 @@ msgstr "Pénznem"
msgid "Default currency used for this company"
msgstr "Cég által használt alapértelmezett pénznem"
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Kiindulási alkatrész"
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "Válassz alkatrészt"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2657,11 +2675,11 @@ msgstr "Válassz alkatrészt"
msgid "Manufacturer"
msgstr "Gyártó"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Gyártó kiválasztása"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2671,58 +2689,58 @@ msgstr "Gyártó kiválasztása"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Gyártói cikkszám"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr "URL link a gyártói alkatrészhez"
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr "Gyártói alkatrész leírása"
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "Gyártói alkatrész"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr "Paraméter neve"
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Érték"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "Paraméter értéke"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "Mértékegységek"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr "Paraméter mértékegység"
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia"
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2733,67 +2751,67 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr
msgid "Supplier"
msgstr "Beszállító"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr "SKU"
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr "Gyártói alkatrész kiválasztása"
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr "URL link a beszállítói alkatrészhez"
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Megjegyzés"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "alap költség"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "Csomagolás"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr "Alkatrész csomagolás"
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr "többszörös"
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr "Többszörös rendelés"
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr "utoljára módosítva"
@@ -2848,9 +2866,9 @@ msgstr "Új kép feltöltése"
msgid "Download image from URL"
msgstr "Kép letöltése URL-ről"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2873,7 +2891,7 @@ msgstr "Kép feltöltése"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Beszállítói alkatrészek"
@@ -2904,6 +2922,7 @@ msgid "Delete Parts"
msgstr "Alkatrész törlés"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "Gyártói alkatrészek"
@@ -2928,8 +2947,8 @@ msgstr "Beszállítói készlet"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Beszerzési rendelések"
@@ -2951,8 +2970,8 @@ msgstr "Új beszerzési rendelés"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "Vevői rendelések"
@@ -2979,7 +2998,7 @@ msgstr "Cég megjegyzések"
msgid "Supplier List"
msgstr "Beszállítók listája"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3012,7 +3031,7 @@ msgid "No manufacturer information available"
msgstr "Nincs elérhető gyártói információ"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3027,7 +3046,7 @@ msgstr "Beszállítói alkatrész törlése"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Törlés"
@@ -3071,7 +3090,7 @@ msgid "Assigned Stock Items"
msgstr "Hozzárendelt készlet tételek"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3189,180 +3208,180 @@ msgstr "Árazás"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Készlet tételek"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Új beszállító"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Új gyártó"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Vevők"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Új vevő"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Cégek"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Új cég"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "Kép letöltése"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr "A kép mérete meghaladja a maximum megengedett letöltés méretét"
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Érvénytelen válasz: {code}"
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr "A megadott URL nem egy érvényes kép fájl"
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr "Címke neve"
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr "Címke leírása"
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr "Címke"
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr "Címke sablon fájl"
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "Engedélyezve"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr "Címke sablon engedélyezve"
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "Szélesség [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr "Címke szélessége, mm-ben"
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Magasság [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr "Címke magassága, mm-ben"
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr "Fájlnév minta"
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr "Minta a címke fájlnevek előállításához"
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok),"
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Szűrők"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok"
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr "Rendelés leírása"
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr "Link külső weboldalra"
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr "Készítette"
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr "Felhasználó vagy csoport aki felelőse ennek a rendelésnek"
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr "Rendelés jegyzetek"
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr "Rendelés azonosító"
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr "Beszerzési rendelés állapota"
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr "Cég akitől a tételek beszerzésre kerülnek"
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr "Beszállítói azonosító"
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr "Beszállítói rendelés azonosító kód"
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr "érkeztette"
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr "Kiállítás dátuma"
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr "Kiállítás dátuma"
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr "Várható beérkezés"
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután már késésben lévőnek számít majd."
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr "Rendelés teljesítési dátuma"
@@ -3370,94 +3389,94 @@ msgstr "Rendelés teljesítési dátuma"
msgid "Part supplier must match PO supplier"
msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával"
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr "Mennyiség pozitív kell legyen"
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr "Cég akinek a tételek értékesítésre kerülnek"
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr "Vevői azonosító "
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr "Megrendelés azonosító kódja a vevőnél"
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Cél dátum a rendelés teljesítéséhez. Ez után számít majd késettnek."
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr "Kiszállítás dátuma"
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr "szállította"
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész"
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr "Csak függő rendelés jelölhető késznek"
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "A rendelés nem jelölhető késznek mivel nem teljesített szállítások vannak"
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak"
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr "Tétel mennyiség"
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr "Sortétel azonosító"
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr "Sortétel megjegyzései"
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr "Cél szállítási dátuma ennek a sortételnek"
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr "Kontextus"
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr "További kontextus ehhez a sorhoz"
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr "Egységár"
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval"
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr "törölve"
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr "Rendelés"
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3468,182 +3487,182 @@ msgstr "Rendelés"
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr "Beszállítói alkatrész"
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr "Beérkezett"
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr "Érkezett tételek száma"
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "Beszerzési ár"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr "Beszerzési egységár"
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?"
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr "Eladási ár"
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr "Eladási egységár"
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr "Szállított mennyiség"
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr "Szállítás dátuma"
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr "Ellenőrizte"
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr "Szállítmány száma"
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr "Szállítás megjegyzései"
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr "Nyomkövetési szám"
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr "Szállítmány nyomkövetési információ"
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr "Szállítmány már elküldve"
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket"
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr "Készlet tétel nincs hozzárendelve"
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez"
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész"
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr "Készlet tétel túlfoglalva"
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr "Vevői rendelés nem egyezik a szállítással"
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr "Szállítás nem egyezik a vevői rendeléssel"
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr "Sor"
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr "Szállítmány"
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr "Vevői rendelés szállítás azonosító"
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr "Tétel"
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr "Válaszd ki a foglalásra szánt készlet tételt"
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr "Készlet foglalási mennyiség megadása"
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr "Pénznem"
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr "A rendelést nem lehet törölni"
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr "A rendelés nem nyitott"
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr "Beszérzési ár pénzneme"
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr "Beszállítói alkatrészt meg kell adni"
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr "Beszerzési rendelést meg kell adni"
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel"
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval"
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr "Sortétel"
@@ -3651,7 +3670,7 @@ msgstr "Sortétel"
msgid "Line item does not match purchase order"
msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr "Válassz cél helyet a beérkezett tételeknek"
@@ -3671,59 +3690,59 @@ msgstr "Vonalkód hash"
msgid "Unique identifier field"
msgstr "Egyedi azonosító mező"
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr "Ez a vonalkód már használva van"
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél"
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr "Sortételt meg kell adni"
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr "A cél helyet kötelező megadni"
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr "Megadott vonalkódoknak egyedieknek kel lenniük"
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr "Eladási ár pénzneme"
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr "Nincsenek szállítmány részletek megadva"
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr "Mennyiség pozitív kell legyen"
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr "Írd be a sorozatszámokat a kiosztáshoz"
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr "Szállítmány kiszállítva"
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr "Szállítás nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr "Nincs találat a következő sorozatszámokra"
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr "A következő sorozatszámok már ki lettek osztva"
@@ -3971,7 +3990,8 @@ msgid "Pending Shipments"
msgstr "Függő szállítmányok"
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr "Műveletek"
@@ -3979,201 +3999,202 @@ msgstr "Műveletek"
msgid "New Shipment"
msgstr "Új szállítmány"
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr "Beszállítói alkatrészek egyeztetése"
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr "Vevő rendelés nem találhtó"
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr "Nem található ár"
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr "A {part} egységára {price}-ra módosítva"
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
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/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr "Beérkező beszerzési rendelés"
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr "Kimenő vevői rendelés"
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr "Gyártással előállított készlet"
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr "A gyártási utasításhoz szükséges készlet"
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr "Érvényes"
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr "Teljes alkatrészjegyzék jóváhagyása"
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr "Ennek az opciónak ki kll lennie választva"
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr "Nullánál nagyobb kell legyen"
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr "Érvényes mennyiségnek kell lennie"
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr "Hely megadása a kezdeti alkarész készlethez"
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr "Ez a mező kötelező"
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Alapértelmezett hely"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr "Teljes készlet"
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr "Elérhető készlet"
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr "Rendelve"
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr "Alkatrész kategória kiválasztása"
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr "Paraméter sablon hozzáadása az azonos szintű kategóriákhoz"
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr "Paraméter sablon hozzáadása az összes kategóriához"
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr "Add meg a mennyiséget az árszámításhoz"
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Ebben a kategóriában lévő alkatrészek helye alapban"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr "Alapértelmezett kulcsszavak"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban"
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "Alkatrész kategóriák"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Alkatrészek"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr "Hibás választás a szülő alkatrészre"
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, 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:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr "A következő szabad sorozatszámok"
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr "A következő szabad sorozatszám"
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr "A legutóbbi sorozatszám"
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban"
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "Alkatrész neve"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr "Sablon-e"
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr "Ez egy sablon alkatrész?"
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr "Ez az alkatrész egy másik változata?"
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr "Ebből a sablonból"
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Alkatrész leírása"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "Kulcsszavak"
-#: part/models.py:829
+#: part/models.py:769
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:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4182,432 +4203,432 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén
msgid "Category"
msgstr "Kategória"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr "Alkatrész kategória"
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr "IPN"
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr "Belső cikkszám"
-#: part/models.py:849
+#: part/models.py:789
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:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Változat"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr "Alapban hol tároljuk ezt az alkatrészt?"
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr "Alapértelmezett beszállító"
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr "Alapértelmezett beszállítói alkatrész"
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr "Alapértelmezett lejárat"
-#: part/models.py:928
+#: part/models.py:866
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:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "Minimális készlet"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr "Minimálisan megengedett készlet mennyiség"
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr "Az alkatrész raktározási mértékegységei"
-#: part/models.py:947
+#: part/models.py:885
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:953
+#: part/models.py:891
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:959
+#: part/models.py:897
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:964
+#: part/models.py:902
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:969
+#: part/models.py:907
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:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr "Aktív-e ez az alkatrész?"
-#: part/models.py:979
+#: part/models.py:917
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:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr "Alkatrész megjegyzései - támogatja a Markdown formázást"
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr "Alkatrészjegyzék ellenőrző összeg"
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr "Tárolt alkatrészjegyzék ellenőrző összeg"
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr "Alkatrészjegyzéket ellenőrizte"
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr "Alkatrészjegyzék ellenőrzési dátuma"
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr "Létrehozó"
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:2425
+#: part/models.py:2218
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:2442
+#: part/models.py:2235
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:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:2481
+#: part/models.py:2274
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:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:2487
+#: part/models.py:2280
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:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Érvénytelen karakter ({c}) a sablon nevében"
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr "Paraméter mértékegysége"
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr "Adat"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr "Alkatrész ID vagy alkatrész név"
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "Alkatrész ID"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr "Egyedi alkatrész ID értéke"
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr "Alkatrész neve"
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr "Alkatrész IPN"
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr "Szint"
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Opcionális"
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:2782
+#: part/models.py:2565
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:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Örökölt"
-#: part/models.py:2795
+#: part/models.py:2578
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:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr "Változatok"
-#: part/models.py:2801
+#: part/models.py:2584
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:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
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:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:3031
+#: part/models.py:2799
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:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Hiba a kapcsolat létrehozása közben: ellenőrizd hogy az alkatrész nem kapcsolódik-e saját magához és azt hogy a kapcsolat egyedi"
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr "Beszerzési pénzneme ennek a készlet tételnek"
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:930
+#: part/serializers.py:803
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:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:936
+#: part/serializers.py:809
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:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr "Helyettesítő alkatrészek másolása"
-#: part/serializers.py:948
+#: part/serializers.py:821
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:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr "Meglévő alkatrészjegyzék törlése"
-#: part/serializers.py:993
+#: part/serializers.py:862
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:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr "Nincs megadva alkatrész oszlop"
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr "Több egyező alkatrész is található"
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr "Nincs egyező alkatrész"
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr "Az alkatrész nem lett összetevőként jelölve"
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr "Mennyiség nincs megadva"
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr "Érvénytelen mennyiség"
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr "Legalább egy alkatrészjegyzék tétel szükséges"
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr "Alacsony készlet értesítés"
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "A {part.name} alkatrész rendelkezésre álló készlete a megadott minimum alá csökkent"
@@ -5092,7 +5113,7 @@ msgstr "Alkatrész részletei"
msgid "This part is a variant of %(link)s"
msgstr "Ez az alkatrész egy változata a %(link)s alkatrésznek"
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "Készleten"
@@ -5385,20 +5406,20 @@ msgstr "Alkatrész változat létrehozása"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Új változat létrehozása a '%(full_name)s' sablonból."
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr "Ismeretlen adatbázis"
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr "Alkatrész kategória beállítása"
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Állítsd be {n} alkatrész kategóriáját"
@@ -5411,79 +5432,79 @@ msgstr "Azonosítók egyeztetése"
msgid "None"
msgstr "Egyik sem"
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr "Alkatrész QR kódja"
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr "Válassz képet az alkatrészhez"
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr "Alkatrész képe frissítve"
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr "Az alkatrész képe nem található"
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr "Alkatrész törlés megerősítése"
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr "Alkatrész törölve"
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr "Alkatrész árak"
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr "Alkatrész paraméter sablon létrehozása"
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr "Alkatrész paraméter sablon módosítása"
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr "Alkatrész paraméter sablon törlése"
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr "Alkatrész kategória törlése"
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr "Alkatrész kategória törölve"
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr "Kategória paraméter sablon létrehozása"
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr "Kategória paraméter sablon szerkesztése"
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr "Kategória paraméter sablon törlése"
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr "A környezeted egy elavult git verziót használ. Ez megakadályozza hogy az InvenTree betöltse a plugin részleteit."
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Nincs megadva művelet"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Nincs egyező művelet"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "Meg kell adni a barcode_data paramétert"
@@ -5495,31 +5516,31 @@ msgstr "Nincs egyező vonalkód"
msgid "Match found for barcode data"
msgstr "Egyezés vonalkódra"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Meg kell adni a stockitem paramétert"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Nincs egyező készlet"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr "Vonalkód már egyezik a készlet tétellel"
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr "Vonalkód már egyezik a készlet hellyel"
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr "Vonalkód már egyezik az alkatrésszel"
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr "Vonalkód hash már egyezik a készlet tétellel"
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr "Készlet tételhez tartozó vonalkód"
@@ -5527,226 +5548,226 @@ msgstr "Készlet tételhez tartozó vonalkód"
msgid "Label printing failed"
msgstr "Címkenyomtatás sikertelen"
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr "InvenTree fejlesztők"
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr "Integrált kimenő értesítési módszerek"
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr "Email értesítések engedélyezése"
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr "Email küldés engedélyezése esemény értesítésekre"
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr "Plugin meta adatok"
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON meta adat mező, külső pluginok számára"
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr "Plugin beállítás"
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr "Plugin beállítások"
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr "Kulcs"
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr "Plugin kulcsa"
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr "PluginNeve a pluginnak"
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr "Aktív-e a plugin"
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr "Módszer"
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr "Nincs szerző"
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr "Nincs dátum"
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr "Beszerzési rendelések engedélyezése"
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr "Beszerzési rendelések funkcióinak engedélyezése az InvenTree felületén"
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr "API kulcs"
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr "Kulcs szükséges a külső API eléréséhez"
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr "Numerikus"
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr "Egy numerikus beállítás"
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr "Választás beállításai"
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr "Egy beállítás több választási lehetőséggel"
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr "Forrás URL"
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr "Csomag forrása - ez lehet egy registry vagy VCS útvonal"
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr "Csomag neve"
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr "Plugin csomag neve - verzió megjelölést is tartalmazhat"
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr "Bővítmény telepítésének megerősítése"
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr "Ez telepíti ezt a plugint az aktuális példányra. A példány karbantartási módba megy."
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr "Tlepítés nincs megerősítve"
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr "Vagy csomag nevet vagy URL-t meg kell adni"
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr "Nincs érvényes objektum megadva a sablonhoz"
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "A '{template}' sablon fájl hiányzik vagy nem érhető el"
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr "Sablon neve"
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr "Riport sablon fájl"
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr "Riport sablon leírása"
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr "Riport verziószáma (automatikusan nő)"
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr "Minta a riport fájlnevek előállításához"
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr "Riport sablon engedélyezve"
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Készlet lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr "Beépített tesztekkel együtt"
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr "Gyártmányba beépített készlet tételek teszt eredményeivel együtt"
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr "Gyártás szűrők"
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Gyártás lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok"
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr "Alkatrész szűrők"
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok"
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr "Megrendelés lekérdezés szűrők"
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr "Vevő rendelés lekérdezés szűrők"
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr "Részlet"
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr "Riport részlet fájl"
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr "Részlet fájl leírása"
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr "Eszköz"
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr "Riport asset fájl"
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr "Asset fájl leírása"
@@ -5763,7 +5784,7 @@ msgid "Stock Item Test Report"
msgstr "Készlet tétel teszt riport"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5777,12 +5798,12 @@ msgid "Test Results"
msgstr "Teszt eredmények"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr "Teszt"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr "Eredmény"
@@ -5812,362 +5833,362 @@ msgstr "Beépített tételek"
msgid "Serial"
msgstr "Sorozatszám"
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr "Mennyiség megadása kötelező"
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr "Egy érvényes alkatrészt meg kell adni"
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén"
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr "Tulajdonos"
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr "Tulajdonos kiválasztása"
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr "Létezik már készlet tétel ilyen a sorozatszámmal"
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "A alkatrész típus ('{pf}') {pe} kell legyen"
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél"
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy"
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr "A tétel nem tartozhat saját magához"
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz"
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat"
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr "Szülő készlet tétel"
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr "Kiindulási alkatrész"
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez"
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Készlet hely"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr "Hol található ez az alkatrész?"
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr "A csomagolása ennek a készlet tételnek itt van tárolva"
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr "Beépítve ebbe"
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr "Ez a tétel be van építve egy másik tételbe?"
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr "Sorozatszám ehhez a tételhez"
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr "Batch kód ehhez a készlet tételhez"
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr "Készlet mennyiség"
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr "Forrás gyártás"
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr "Gyártás ehhez a készlet tételhez"
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr "Forrás beszerzési rendelés"
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr "Beszerzés ehhez a készlet tételhez"
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr "Cél vevői rendelés"
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr "Lejárati dátum"
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr "Törlés ha kimerül"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr "Készlet tétel törlése ha kimerül"
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr "Készlet tétel megjegyzések"
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr "Egy egység beszerzési ára a beszerzés időpontjában"
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr "Alkatrésszé alakítva"
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr "Az alkatrész nem követésre kötelezett"
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr "Mennyiség egész szám kell legyen"
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "A mennyiség nem lépheti túl a készletet ({n})"
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr "A sorozatszám egész számok listája kell legyen"
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával"
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Ezek a sorozatszámok már léteznek: {exists}"
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr "Készlet tétel beépül egy másikba"
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr "A készlet tétel más tételeket tartalmaz"
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr "Készlet tétel gyártás alatt"
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr "Követésre kötelezett készlet nem vonható össze"
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr "Duplikált készlet tételek vannak"
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon"
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon"
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr "Készlet tételek állapotainak egyeznie kell"
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Készlet tétel nem mozgatható mivel nincs készleten"
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr "Bejegyzés megjegyzései"
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr "Ehhez a teszthez meg kell adni értéket"
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr "Ehhez a teszthez fel kell tölteni mellékletet"
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr "Teszt neve"
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr "Teszt eredménye"
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr "Teszt kimeneti értéke"
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr "Teszt eredmény melléklet"
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr "Tesztek megjegyzései"
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr "Beszerzési ára ennek a készlet tételnek"
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal"
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})"
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr "Írd be a sorozatszámokat az új tételekhez"
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr "Cél készlet hely"
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr "Opcionális megjegyzés mező"
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez"
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "A sorozatszámok már léteznek"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr "Válaszd ki a beépítésre szánt készlet tételt"
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr "Készlet tétel nem elérhető"
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben"
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr "Cél hely a kiszedett tételeknek"
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr "Tranzakció megjegyzés hozzáadása (opcionális)"
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr "Az alkatrésznek értékesíthetőnek kell lennie"
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr "A tétel egy vevő rendeléshez foglalt"
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr "A tétel egy gyártási utasításhoz foglalt"
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr "Vevő akihez rendeljük a készlet tételeket"
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr "A kiválasztott cég nem egy vevő"
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr "Készlet hozzárendelés megjegyzései"
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr "A készlet tételek listáját meg kell adni"
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr "Készlet összevonás megjegyzései"
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr "Nem egyező beszállítók megengedése"
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése"
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr "Nem egyező állapotok megjelenítése"
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr "Különböző állapotú készletek összevonásának engedélyezése"
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr "Legalább két készlet tételt meg kell adni"
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr "Készlet tétel elsődleges kulcs értéke"
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr "Készlet tranzakció megjegyzései"
@@ -6484,7 +6505,7 @@ msgid "Sublocations"
msgstr "Alhelyek"
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Készlethelyek"
@@ -6536,7 +6557,7 @@ msgstr "Foglalások"
msgid "Child Items"
msgstr "Gyermek tételek"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr "Készlet tétel konvertálása"
@@ -6561,55 +6582,55 @@ msgstr "Ez a művelet nem vonható vissza könnyen"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Biztosan törölni akarod ezt a készlettörténeti bejegyzést?"
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr "Készlet hely QR kódja"
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr "Visszavétel készletre"
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr "Adj meg egy érvényes helyet"
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr "Készlet tétel vevőtől visszahozva"
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr "Minden teszt adat törlése"
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr "Teszt adat törlésének megerősítése"
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr "Klikkeld be a megerősítő mezőt"
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr "Készlet tétel QR kódja"
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr "Készlethely törlése"
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr "Készlet tétel törlése"
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr "Készlettörténet bejegyzés törlése"
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr "Készlettörténet bejegyzés szerkesztése"
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr "Készlettörténet bejegyzés hozzáadása"
@@ -6883,7 +6904,7 @@ msgid "Install Plugin"
msgstr "Plugin Telepítése"
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr "Admin"
@@ -7569,6 +7590,14 @@ msgstr "Link hozzáadása"
msgid "Add Attachment"
msgstr "Melléklet hozzáadása"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr "Kiszolgáló újraindítása szükséges"
@@ -7705,31 +7734,27 @@ msgstr "Nem kezelt hibakód"
msgid "Error code"
msgstr "Hiba kód"
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr "Nem találhatók mellékletek"
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "Melléklet szerkesztése"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr "Törlés megerősítése"
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "Melléklet törlése"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr "Feltöltés dátuma"
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr "Melléklet szerkesztése"
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr "Melléklet törlése"
@@ -7946,6 +7971,7 @@ msgid "Variant stock allowed"
msgstr "Készletváltozatok engedélyezve"
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr "Nincs szabad"
@@ -8174,20 +8200,20 @@ msgstr "Vannak helyettesítő alkatrészek"
msgid "Quantity Per"
msgstr "Szükséges/db"
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr "Nincs elegendő"
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr "Van elegendő"
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr "Lefoglalva"
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr "Gyártási készlet"
@@ -8195,7 +8221,7 @@ msgstr "Gyártási készlet"
msgid "Order stock"
msgstr "Készlet rendelés"
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr "Lefoglalt készlet"
@@ -8847,15 +8873,15 @@ msgstr "Rendelés késésben"
msgid "Items"
msgstr "Tételek"
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr "Sortétel másolása"
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr "Sortétel szerkesztése"
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr "Sortétel törlése"
@@ -8868,13 +8894,13 @@ msgid "Total"
msgstr "Összesen"
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr "Egységár"
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr "Teljes ár"
@@ -8887,39 +8913,39 @@ msgstr "Ez a sortétel késésben van"
msgid "Receive line item"
msgstr "Sortétel bevételezése"
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr "Sortétel másolása"
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr "Sortétel szerkesztése"
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr "Sortétel törlése"
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr "Sor másolása"
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr "Sor szerkesztése"
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr "Sor törlése"
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr "Sor másolása"
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr "Sor szerkesztése"
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr "Sor törlése"
@@ -9012,39 +9038,39 @@ msgstr "Vevőnek kiszállítva"
msgid "Stock location not specified"
msgstr "Készlethely nincs megadva"
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr "Sorozatszámok kiosztása"
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr "Készletrendelés"
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr "Árszámítás"
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr "Nem törölhető mivel a tételek ki lettek szállítva"
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr "Nem törölhető mivel tételek vannak lefoglalva"
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr "Sorozatszámok kiosztása"
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr "Egységár módosítása"
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr "Nincs egyező sortétel"
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr "Nincsenek egyező sorok"
@@ -9376,11 +9402,11 @@ msgstr "Vevői rendelések kiválasztása"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Vevői rendelés(eke)t ki kell választani a riport nyomtatás előtt"
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr "Eredmények összezárása"
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr "Eredmények eltávolítása"
@@ -9516,7 +9542,7 @@ msgstr "Kivesz"
msgid "Add Stock"
msgstr "Készlet növelése"
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr "Hozzáad"
@@ -10251,51 +10277,51 @@ msgstr "Felhasználók"
msgid "Select which users are assigned to this group"
msgstr "Válaszd ki mely felhasználók tartoznak ehhez a csoporthoz"
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr "A kövekező felhasználók több csoportnak is tagjai:"
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "Személyes adatok"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Jogosultságok"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "Fontos dátumok"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "Jogosultságok"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "Csoport"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Nézet"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Jogosultság tételek megtekintéséhez"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Jogosultság tételek hozzáadásához"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "Módosítás"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Jogosultság tételek szerkesztéséhez"
-#: users/models.py:220
+#: users/models.py:219
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 c9c6e13ad4..a17273f562 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API endpoint tidak ditemukan"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Masukkan tanggal"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Konfirmasi"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Konfirmasi penghapusan"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Konfirmasi penghapusan item"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Masukkan sandi"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Masukkan kata sandi baru"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Konfirmasikan kata sandi"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Konfirmasi sandi baru"
@@ -70,72 +70,73 @@ msgstr "Email (ulang)"
msgid "Email address confirmation"
msgstr "Konfirmasi alamat email"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Tidak ada tindakan yang ditentukan"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Aksi tidak ditemukan"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 722c2cc185..bd09b9d497 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "Endpoint API non trovato"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Inserisci la data"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Conferma"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Conferma eliminazione"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Conferma eliminazione elementi"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Inserire la password"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Inserire una nuova password"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Conferma la password"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Conferma la nuova password"
@@ -70,72 +70,73 @@ msgstr "Email (ancora)"
msgid "Email address confirmation"
msgstr "Conferma indirizzo email"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "È necessario digitare la stessa e-mail ogni volta."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Seriale duplicato: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Numero seriale vuoto"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Gruppo non valido: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Gruppo {group} invalido o inesistente"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Nessun numero di serie trovato"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "File mancante"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Link esterno mancante"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Allegato"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Seleziona file da allegare"
msgid "Link"
msgstr "Collegamento"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Link a URL esterno"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Commento"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Utente"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "data caricamento"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Il nome del file non deve essere vuoto"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Directory allegati non valida"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Il nome del file contiene caratteri non validi '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Nome file estensione mancante"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Esiste già un allegato con questo nome di file"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Errore nella rinominazione del file"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Scelta non valida"
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Nome"
msgid "Description"
msgstr "Descrizione"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Descrizione (opzionale)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "genitore"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Nome del file"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Valore non valido"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "File dati"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Seleziona un file per il caricamento"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Formato file non supportato"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "File troppo grande"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Nessun colonna trovata nel file"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Colonna richiesta mancante: '{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Colonna duplicata: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Ceco"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Farsi / Persiano"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Ungherese"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr "Portoghese"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr "Portoghese (Brasile)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Cinese"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Controllo in background non riuscito"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Server di posta non configurato"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "Controlli di sistema InvenTree falliti"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "In attesa"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Inviato"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Completo"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Annullato"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Perso"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Reso"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Spedito"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Attenzione necessaria"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Danneggiato"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Distrutto"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Respinto"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Ricevuto contro l'ordine di acquisto"
msgid "Production"
msgstr "Produzione"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Non è un codice valuta valido"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Carattere non valido nel nome del file"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN deve corrispondere al modello regex {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Il campo deve corrispondere con il modello {pattern}"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Carattere illegale nel nome ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Il sovra-valore non può essere negativo"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "L'eccesso non deve superare il 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Cancella elemento"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Spunta la casella per confermare l'eliminazione dell'elemento"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Modifica informazioni utente"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Imposta Password"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Le password devono coincidere"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Informazioni sistema"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Ordine di Produzione"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Ordini di Produzione"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Riferimento"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr "Articolo"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Selezionare parte da produrre"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Numero di riferimento ordine di vendita"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Posizione Di Origine"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Posizione Della Destinazione"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Quantità Produzione"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Articoli completati"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Codice Lotto"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Data di creazione"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Data completamento obiettivo"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Data di completamento"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "Completato da"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Rilasciato da"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Responsabile"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Collegamento esterno"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Note"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "Articolo in giacenza selezionato non trovato nel BOM"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Produzione"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr "Articoli in magazzino"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Origine giacenza articolo"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Origine giacenza articolo"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Origine giacenza articolo"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Origine giacenza articolo"
msgid "Quantity"
msgstr "Quantità"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Installa in"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Destinazione articolo in giacenza"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Codice Seriale"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr "I seguenti numeri di serie sono già esistenti"
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr "Posizione"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr "Posizione per gli output di build completati"
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr "Posizione per gli output di build completati"
msgid "Status"
msgstr "Stato"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr "Distinta base (Bom)"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantità disponibile ({q}) superata"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Completato"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Destinazione"
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Elimina Ordine Build"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Formato file non supportato: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Errore nella lettura del file (codifica non valida)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Errore nella lettura del file (formato non valido)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Errore nella lettura del file (dimensione errata)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Seleziona file da caricare"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "Seleziona il file {name} da caricare"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr "Valore impostazioni"
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr "Il valore specificato non è un opzione valida"
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "Il valore deve essere un valore booleano"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr "Il valore deve essere un intero"
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr "La stringa chiave deve essere univoca"
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Nessun gruppo"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Riavvio richiesto"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr "Descrittore stringa per l'istanza del server"
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr "Utilizza nome istanza"
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr "Usa il nome dell'istanza nella barra del titolo"
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Nome azienda"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Nome interno dell'azienda"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "URL Base"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "URL di base per l'istanza del server"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Valuta predefinita"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Valuta predefinita"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Scarica dall'URL"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Consenti il download di immagini e file remoti da URL esterno"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Supporto Codice A Barre"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Abilita supporto scanner codici a barre"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr "Schema di espressione regolare per l'articolo corrispondente IPN"
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Consenti duplicati IPN"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Permetti a più articoli di condividere lo stesso IPN"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Permetti modifiche al part number interno (IPN)"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr "Copia I Dati Della distinta base dell'articolo"
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr "Copia I Dati Parametro dell'articolo"
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copia i dati dei parametri di default quando si duplica un articolo"
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr "Copia i dati di prova di default quando si duplica un articolo"
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr "Copia Template Parametri Categoria"
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Assemblaggio"
-#: common/models.py:905
+#: common/models.py:828
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:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Componente"
-#: common/models.py:912
+#: common/models.py:835
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:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Acquistabile"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Vendibile"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Tracciabile"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Gli articoli sono tracciabili per impostazione predefinita"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuale"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Gli articoli sono virtuali per impostazione predefinita"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "Mostra l'importazione nelle viste"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "Mostra la procedura guidata di importazione in alcune viste articoli"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Mostra il prezzo nei moduli"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "Mostra il prezzo dell'articolo in alcuni moduli"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Mostra il prezzo nella BOM"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr "Includi le informazioni sui prezzi nelle tabelle BOM"
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "Mostra articoli correlati"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr "Visualizza parti correlate per ogni articolo"
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr "Crea giacenza iniziale"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr "Crea giacenza iniziale sulla creazione articolo"
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "Prezzi interni"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr "Abilita prezzi interni per gli articoli"
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr "Prezzo interno come BOM-Price"
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM"
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr "Formato di visualizzazione del nome articolo"
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr "Formato per visualizzare il nome dell'articolo"
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr "Abilita Report di Stampa"
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr "Abilita generazione di report di stampa"
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Modalità Debug"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr "Genera report in modalità debug (output HTML)"
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Dimensioni pagina"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "Dimensione predefinita della pagina per i report PDF"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Stampa di prova"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr "Abilita generazione di stampe di prova"
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr "Scadenza giacenza"
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr "Abilita funzionalità di scadenza della giacenza"
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr "Vendi giacenza scaduta"
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr "Consenti la vendita di stock scaduti"
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza"
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "giorni"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr "Controllo della proprietà della giacenza"
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza"
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr "Referenza ordine d'acquisto"
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr "Abilita password dimenticata"
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr "Abilita registrazione"
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "SSO abilitato"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "Abilita SSO nelle pagine di accesso"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "Email richiesta"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr "Riempimento automatico degli utenti SSO"
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr "Mostra le categorie sottoscritte"
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Mostra ultimi articoli"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr "Attivo"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Carica file"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Abbina Campi"
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr "Elementi corrispondenti"
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr "Corrispondenza campi non riuscita"
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "Articoli importati"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Passaggio Precedente"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "URL Immagine"
@@ -2597,7 +2615,7 @@ msgstr "Punto di contatto"
msgid "Link to external company information"
msgstr "Collegamento alle informazioni aziendali esterne"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Immagine"
@@ -2625,9 +2643,9 @@ msgstr "è un produttore"
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Valuta"
@@ -2635,16 +2653,16 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Articolo di base"
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "Seleziona articolo"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr "Seleziona articolo"
msgid "Manufacturer"
msgstr "Produttore"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Seleziona Produttore"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Seleziona Produttore"
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Codice articolo produttore"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr "URL dell'articolo del fornitore"
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr "Descrizione articolo costruttore"
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "Codice articolo produttore"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr "Nome parametro"
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Valore"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "Valore del parametro"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "Unità"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr "Unità parametri"
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo
msgid "Supplier"
msgstr "Fornitore"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Seleziona fornitore"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr "Selezionare un produttore"
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr "URL dell'articolo del fornitore"
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Nota"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "costo base"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "Confezionamento"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr "Imballaggio del pezzo"
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr "multiplo"
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr "Ordine multiplo"
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr "Carica nuova immagine"
msgid "Download image from URL"
msgstr "Scarica immagine dall'URL"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "Carica immagine"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Articoli fornitore"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "Cancella articoli"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr "Giacenza Fornitore"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Ordine di acquisto"
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr "Elenco dei fornitori"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "Elimina articolo fornitore"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Elimina"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Articoli in magazzino"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Nuovo Fornitore"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Nuovo Produttore"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Clienti"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Nuovo cliente"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Aziende"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Nuova Azienda"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "Download Immagine"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download"
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Risposta non valida: {code}"
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr "Nome etichetta"
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr "Descrizione etichetta"
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr "Etichetta"
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr "File modello etichetta"
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "Abilitato"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr "Modello di etichetta abilitato"
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "Larghezza [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Altezza [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Filtri"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr "Descrizione ordine"
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr "Creato Da"
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr "Utente o gruppo responsabile di questo ordine"
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr "Note ordine"
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr "Riferimento ordine"
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr "Stato ordine d'acquisto"
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr "Codice di riferimento ordine fornitore"
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr "ricevuto da"
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr "Data di emissione"
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr "Data di emissione ordine"
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr "Data di consegna programmata"
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data."
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr "Data ordine completato"
@@ -3369,94 +3388,94 @@ msgstr "Data ordine completato"
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr "Articolo Fornitore"
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr "Specifica la posizione per lo stock iniziale"
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Posizione Predefinita"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr "Giacenze Totali"
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr "Disponibilità in magazzino"
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr "Ordinato"
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr "Seleziona categoria articolo"
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr "Digita la quantità per il calcolo del prezzo"
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Posizione predefinita per gli articoli di questa categoria"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr "Keywords predefinite"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr "Parole chiave predefinite per gli articoli in questa categoria"
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "Categorie Articolo"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Articoli"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr "Scelta non valida per l'articolo principale"
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr "I successivi numeri di serie disponibili sono"
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr "Il prossimo numero di serie disponibile è"
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr "Il numero di serie più recente è"
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "Nome articolo"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr "È Template"
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr "Quest'articolo è un articolo di template?"
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr "Questa parte è una variante di un altro articolo?"
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr "Variante Di"
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Descrizione articolo"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "Parole Chiave"
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
msgid "Category"
msgstr "Categoria"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr "Numero Dell'articolo Interno"
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Revisione"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr "Dove viene normalmente immagazzinato questo articolo?"
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr "Fornitore predefinito"
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr "Articolo fornitore predefinito"
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr "Scadenza Predefinita"
-#: part/models.py:928
+#: part/models.py:866
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:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "Scorta Minima"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr "Livello minimo di giacenza consentito"
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr "Unità di conservazione delle scorte per quest'articolo"
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr "Questo pezzo può essere venduto ai clienti?"
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr "Quest'articolo è attivo?"
-#: part/models.py:979
+#: part/models.py:917
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:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr "Note dell'articolo - supporta la formattazione Markdown"
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "Codice Articolo"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr "Notifica di magazzino bassa"
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "In magazzino"
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr "Database sconosciuto"
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr "Imposta categoria articolo"
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Imposta categoria per {n} articoli"
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr "Elimina categoria"
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr "La Categoria articoli è stata eliminata"
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr "Crea Template Parametro Categoria"
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr "Modifica Modello Parametro Categoria"
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr "Elimina Modello Parametro Categoria"
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Nessuna azione specificata"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Nessuna azione corrispondente trovata"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "È necessario fornire il parametro barcode_data"
@@ -5494,31 +5515,31 @@ msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "È necessario fornire il parametro stockitem"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Nessun elemento corrispondente trovato"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr "Nessun oggetto valido fornito nel modello"
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr "Seriale"
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr "Seleziona Owner"
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr "Articolo base"
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Ubicazione magazzino"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr "Installato In"
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr "Quantità disponibile"
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr "Data di Scadenza"
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr "Elimina al esaurimento"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr "Sottoallocazioni"
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Posizioni magazzino"
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr "QR Code della posizione magazzino"
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr "Specificare una posizione valida"
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr "Elimina Posizione di Giacenza"
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr "Aggiungi allegato"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr "È necessario riavviare il server"
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "Modifica allegato"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "Elimina allegato"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr "Totale"
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr "Prezzo Unitario"
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr "Prezzo Totale"
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr "Spedito al cliente"
msgid "Stock location not specified"
msgstr "Nessun posizione specificata"
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr "Prezzo d'acquisto"
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr "Calcola il prezzo"
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr "Prendi"
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr "Aggiungi"
@@ -10250,51 +10276,51 @@ msgstr "Utenti"
msgid "Select which users are assigned to this group"
msgstr "Selezionare quali utenti sono assegnati a questo gruppo"
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr "Gli utenti seguenti sono membri di più gruppi:"
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "Informazioni personali"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Permessi"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "Date Importanti"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "Impostazione autorizzazioni"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "Gruppo"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Visualizza"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Autorizzazione a visualizzare gli articoli"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "Modificare"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Permessi per modificare gli elementi"
-#: users/models.py:220
+#: users/models.py:219
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 2aafd2a969..77167fba40 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "APIエンドポイントが見つかりません"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "日付を入力する"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "確認"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "削除の確認"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "削除の確認"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "パスワードを入力してください"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "新しいパスワードを入力してください。"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "パスワードの確認"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "新しいパスワードの確認"
@@ -70,72 +70,73 @@ msgstr "メールアドレス(確認用)"
msgid "Email address confirmation"
msgstr "メールアドレスの確認"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "毎回同じメールアドレスを入力する必要があります。"
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "重複したシリアル番号: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "シリアル番号は空です"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "無効なグループ: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "{group} は無効なグループか、存在しません。"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "シリアル番号が見つかりません"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "ファイルがありません"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "外部リンクが見つかりません。"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "添付ファイル"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "添付ファイルを選択"
msgid "Link"
msgstr "リンク"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "外部 サイト へのリンク"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "コメント:"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "ユーザー"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "アップロード日時"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "ファイル名は空欄にできません"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "添付ファイルのディレクトリが正しくありません"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "ファイル名に無効な文字'{c}'が含まれています"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "ファイル名に拡張子がありません"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "この名前の貼付ファイルは既に存在します"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "ファイル名の変更に失敗しました"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "無効な選択です"
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "お名前"
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "ファイル名"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "無効な値です。"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "データファイル"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "アップロードするファイルを選択"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "サポートされていないファイル形式"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "ファイルサイズが大きすぎます"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "ファイルに列が見つかりません"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "ファイルにデータ行がみつかりません"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "データが入力されていません"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "データ列が指定されていません"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "必須の列がありません: {name}"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "{col} 列が重複しています。"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "ギリシャ語"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "スペイン語"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "スペイン語(メキシコ)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "ヘブライ語"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "ハンガリー語"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "イタリア語"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "日本語"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "韓国語"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "オランダ語"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "ノルウェー語"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "ロシア語"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "スウェーデン語"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "タイ語"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "ベトナム語"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "中国語"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "バックグラウンドワーカーのチェックに失敗しました"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "メールアドレスが未設定です"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InvenTree システムのヘルスチェックに失敗しました"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "処理待ち"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "設置済"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "完了"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "キャンセル済"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "紛失"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "返品済"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "発送済み"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "注意が必要です"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "破損"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "破壊されました"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "却下済み"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr "生産"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "名前の一部に不正な文字が使用されています({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "項目を削除"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "ユーザー情報を編集"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "パスワードを設定"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "システム情報"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr "パーツ"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "作成日時"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "メモ"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "パーツを割り当てるためにビルドする"
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr "ステータス"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "ファイル"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "テンプレート"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "アセンブリ"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "コンポーネント"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "購入可能"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "追跡可能"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "デバッグモード"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr "メッセージ ID:"
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "サプライヤー・パーツ"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "パーツを削除"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "メーカー・パーツ"
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "パーツ"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "アクションが指定されていません"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "一致するアクションが見つかりませんでした"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 a62031ed68..288ff8648f 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "확인"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "비밀번호를 입력하세요"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "새로운 비밀번호를 입력하세요"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "비밀번호 확인"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "새 비밀번호 확인"
@@ -70,72 +70,73 @@ msgstr "이메일 (다시 입력)"
msgid "Email address confirmation"
msgstr "이메일 주소 확인"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "첨부파일"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "첨부할 파일을 선택하세요"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "첨부할 파일을 선택하세요"
msgid "Link"
msgstr "링크"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "외부 URL로 링크"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "사용자"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "업로드 날짜"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "파일명은 비워둘 수 없습니다"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "파일명에 허용되지 않은 문자 '{c}'가 포함되어 있습니다"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "같은 이름의 첨부파일이 이미 존재합니다"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "파일 이름 바꾸기 오류"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr "이름"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "이름"
msgid "Description"
msgstr "설명"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "설명 (선택 사항)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "유효한 숫자여야 합니다"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "파일명"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "파일이 너무 큽니다"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "체코어"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "독일어"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "그리스어"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "영어"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "스페인어"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "스페인어 (멕시코)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "파르시어/페르시아어"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "프랑스어"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "히브리어"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "헝가리어"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "이탈리아어"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "일본어"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "한국어"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "네덜란드어"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "노르웨이어"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "폴란드어"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "러시아어"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "스웨덴어"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "태국어"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "터키어"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "베트남어"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "중국어"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "취소됨"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "파손됨"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "파괴됨"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "사용자 정보 수정"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "비밀번호 설정"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "비밀번호가 일치해야 합니다"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "시스템 정보"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "외부 링크"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr "수량"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "수량 값은 0보다 커야 합니다"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "일련번호"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr "위치"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr "상태"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "파일"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "업로드할 파일을 선택하세요"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} 파일"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "업로드할 {name} 파일을 선택하세요"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "재시작 필요"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "회사명"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "기본 통화"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "기본 통화"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "URL에서 다운로드"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "바코드 지원"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "구입 가능"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "판매 가능"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "디버그 모드"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "페이지 크기"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "PDF 보고서 기본 페이지 크기"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "SSO 활성화"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "로그인 페이지에서 SSO 활성화"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "이메일 필요"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr "두 번 보내기"
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "파일 업로드"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "이미지 URL"
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "이미지"
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr "새 이미지 업로드"
msgid "Download image from URL"
msgstr "URL에서 이미지 다운로드"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "이미지 업로드"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "삭제"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "신규 고객"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "새 회사"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "이미지 다운로드"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "너비 [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "높이 [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr "바코드 해시"
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr "이미 사용 중인 바코드입니다"
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr "데이터"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr ""
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr "키"
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr "API 키"
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "일련번호가 이미 존재합니다"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr "관리자"
@@ -7568,6 +7589,14 @@ msgstr "링크 추가"
msgid "Add Attachment"
msgstr "첨부파일 추가"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr "서버 재시작 필요"
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr "단가"
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 14f6562b33..477ef05c5b 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API eindpunt niet gevonden"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr "Error details kunnen worden gevonden in het admin scherm"
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Voer datum in"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Bevestigen"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Bevestig verwijdering"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Bevestig item verwijdering"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Voer wachtwoord in"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Voer een nieuw wachtwoord in"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Wachtwoord bevestigen"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Nieuw wachtwoord bevestigen"
@@ -70,72 +70,73 @@ msgstr "E-mailadres (opnieuw)"
msgid "Email address confirmation"
msgstr "E-mailadres bevestiging"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Duplicaat serienummer: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveelheid ingevoerd"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Leeg serienummer"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ongeldig groepsbereik: {g}"
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ongeldige groep: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ongeldig groepsbereik: {g}"
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ongeldige/geen groep {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Geen serienummers gevonden"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})"
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Ontbrekend bestand"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Bijlage"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Bestand als bijlage selecteren"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Opmerking"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Bestand opmerking"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Gebruiker"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "uploaddatum"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Bestandsnaam mag niet leeg zijn"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Foute bijlagemap"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Bestandsnaam bevat illegale teken '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Bestandsnaam mist extensie"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Bijlage met deze bestandsnaam bestaat al"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Fout bij hernoemen bestand"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Ongeldige keuze"
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Naam"
msgid "Description"
msgstr "Omschrijving"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Omschrijving (optioneel)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "bovenliggende"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Ongeldige waarde"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Data bestand"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Selecteer een bestand om te uploaden"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Niet ondersteund bestandstype"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Bestand is te groot"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Geen kolommen gevonden in het bestand"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Geen data rijen gevonden in dit bestand"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Geen data rijen opgegeven"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Geen gegevenskolommen opgegeven"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Verplichte kolom ontbreekt: '{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dubbele kolom: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Tsjechisch"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Farsi / Perzisch"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Hongaars"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr "Portugees"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr "Portugees (Braziliaans)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Chinees"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Achtergrondwerker check is gefaald"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "E-mailbackend niet geconfigureerd"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InvenTree gezondsheidschecks mislukt"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Bezig"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Geplaatst"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Voltooid"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Geannuleerd"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Kwijt"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Retour"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Verzonden"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Aandacht nodig"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Beschadigd"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Verwoest"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Afgewezen"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Ontvangen tegen inkoopopdracht"
msgid "Production"
msgstr "Productie"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Geen geldige valutacode"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Ongeldig teken in onderdeelnaam"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN moet overeenkomen met regex-patroon {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referentie moet overeenkomen met patroon {pattern}"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Illegaal teken in naam ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Overschotwaarde mag niet negatief zijn"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Overschot mag niet groter zijn dan 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr "Ongeldige waarde voor overschot"
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Verwijder Artikel"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Selectievakje aanvinken om verwijdering van artikel te bevestigen"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Gebruikersgegevens bewerken"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Wachtwoord instellen"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Wachtwoordvelden komen niet overeen"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Systeeminformatie"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "Ongeldige keuze voor bovenliggende productie"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Productieopdracht"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Productieopdrachten"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Productieopdracht Referentie"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Referentie"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Korte beschrijving van de productie"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Bovenliggende Productie"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "Productieopdracht waar dit productie aan is toegewezen"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "Productieopdracht waar dit productie aan is toegewezen"
msgid "Part"
msgstr "Onderdeel"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Selecteer onderdeel om te produceren"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Verkooporder Referentie"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waar deze productie aan is toegewezen"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Bronlocatie"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Selecteer de locatie waar de voorraad van de productie vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Bestemmings Locatie"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Productiehoeveelheid"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Aantal voorraaditems om te produceren"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Voltooide voorraadartikelen"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Aantal voorraadartikelen die zijn voltooid"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Productiestatus"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Productiestatuscode"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Batchcode"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Batchcode voor deze productieuitvoer"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Verwachte opleveringsdatum"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Opleveringsdatum"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Uitgegeven door"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Gebruiker die de productie-opdracht heeft gegeven"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Gebruiker verantwoordelijk voor deze productieopdracht"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Opmerkingen"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Opmerkingen over de productie"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Geen productie uitvoer opgegeven"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Productie uitvoer is al voltooid"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "Product komt niet overeen met de Productieopdracht"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden"
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "Geselecteerd voorraadartikel niet gevonden in stuklijst"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Product"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "Product om onderdelen toe te wijzen"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "Product om onderdelen toe te wijzen"
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Bron voorraadartikel"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Bron voorraadartikel"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Bron voorraadartikel"
msgid "Quantity"
msgstr "Hoeveelheid"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid toe te wijzen aan productie"
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr "Productieuitvoer"
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr "Productieuitvoer komt niet overeen met de bovenliggende productie"
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr "Uitvoeronderdeel komt niet overeen met productieorderonderdeel"
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr "Deze productieuitvoer is al voltooid"
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr "Deze productieuitvoer is niet volledig toegewezen"
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor productie uitvoer"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat"
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Serienummers"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Voer serienummers in voor productieuitvoeren"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr "Serienummers automatisch toewijzen"
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers"
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr "De volgende serienummers bestaan al"
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
msgid "Location"
msgstr "Locatie"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr "Locatie van voltooide productieuitvoeren"
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr "Locatie van voltooide productieuitvoeren"
msgid "Status"
msgstr "Status"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr "Incomplete Toewijzing Accepteren"
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen"
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr "Toegewezen Voorraad Verwijderen"
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Verminder alle voorraad die al is toegewezen aan deze productie"
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr "Verwijder Incomplete Uitvoeren"
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr "Verwijder alle productieuitvoeren die niet zijn voltooid"
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr "Accepteer Niet-toegewezen"
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze productieorder"
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "Vereiste voorraad is niet volledig toegewezen"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr "Accepteer Onvolledig"
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Accepteer dat het vereist aantal productieuitvoeren niet is voltooid"
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr "Vereiste productiehoeveelheid is voltooid"
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr "Productieorder heeft onvolledige uitvoeren"
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr "Er zijn geen productuitvoeren aangemaakt voor deze productieorder"
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr "Stuklijstartikel"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr "Productieuitvoer"
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr "Productieuitvoer moet naar dezelfde productie wijzen"
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder"
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "Artikel moet op voorraad zijn"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Beschikbare hoeveelheid ({q}) overschreden"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde onderdelen"
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen"
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr "Dit voorraadartikel is al toegewezen aan deze productieoutput"
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Voorraadlocatie waar onderdelen afkomstig zijn (laat leeg om van elke locatie te nemen)"
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr "Locatie uitsluiten"
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten"
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr "Uitwisselbare voorraad"
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt"
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr "Vervangende Voorraad"
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr "Toewijzing van vervangende onderdelen toestaan"
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr "Voorraad vereist voor productieorder"
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Voorraad is niet volledig toegewezen aan deze productieopdracht"
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Voltooid"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr "Voorraadbron"
msgid "Stock can be taken from any available location."
msgstr "Voorraad kan worden genomen van elke beschikbare locatie."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Bestemming"
@@ -1508,929 +1510,945 @@ msgstr "Productieopdracht Details"
msgid "Completed Outputs"
msgstr "Voltooide Uitvoeren"
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Verwijder Productieopdracht"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Niet-ondersteunde bestandsindeling: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Fout bij lezen bestand (ongeldige codering)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Fout bij lezen bestand (ongeldig formaat)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Fout bij lezen bestand (onjuiste afmeting)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Fout bij lezen bestand (gegevens kunnen beschadigd zijn)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Bestand"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Selecteer bestand om te uploaden"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} Bestand"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "Kies {name} bestand om te uploaden"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)"
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr "Instellingswaarde"
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr "Gekozen waarde is geen geldige optie"
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "Waarde moet een booleaanse waarde zijn"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr "Waarde moet een geheel getal zijn"
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr "Sleutelreeks moet uniek zijn"
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Geen groep"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Opnieuw opstarten vereist"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is"
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr "ID Serverinstantie"
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr "Stringbeschrijving voor de server instantie"
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr "Gebruik de instantie naam"
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr "Gebruik de naam van de instantie in de titelbalk"
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr "Tonen `over` beperken"
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Bedrijfsnaam"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Interne bedrijfsnaam"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "Basis URL voor serverinstantie"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Standaard Valuta"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Standaard valuta"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Download van URL"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Streepjescodeondersteuning"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Streepjescodescanner ondersteuning inschakelen"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN"
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Duplicaat IPN toestaan"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Bewerken IPN toestaan"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr "Kopieer Onderdeel Stuklijstgegevens"
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel"
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr "Kopieer Onderdeel Parametergegevens"
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel"
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr "Kopieer Onderdeel Testdata"
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel"
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr "Kopiëer Categorieparameter Sjablonen"
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Sjabloon"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Onderdelen zijn standaard sjablonen"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Samenstelling"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Component"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten"
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Koopbaar"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Onderdelen kunnen standaard gekocht worden"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Verkoopbaar"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Onderdelen kunnen standaard verkocht worden"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Volgbaar"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Onderdelen kunnen standaard gevolgd worden"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtueel"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Onderdelen zijn standaard virtueel"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "Toon Import in Weergaven"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "Toon de importwizard in sommige onderdelenweergaven"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Toon Prijs in Formulieren"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "Toon onderdeelprijs in sommige formulieren"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Prijs in Stuklijst Weergeven"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr "Prijsinformatie in Stuklijsttabellen opnemen"
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr "Toon Prijsgeschiedenis"
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr "Toon historische prijzen voor Onderdeel"
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "Verwante onderdelen tonen"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr "Verwante onderdelen voor een onderdeel tonen"
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr "Eerste voorraad aanmaken"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr "Aanmaken eerste voorraad bij het maken van onderdeel"
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "Interne Prijzen"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr "Inschakelen van interne prijzen voor onderdelen"
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr "Interne Prijs als Stuklijst Prijs"
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Gebruik de interne prijs (indien ingesteld) in stuklijst prijsberekeningen"
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr "Onderdelennaam Weergaveopmaak"
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr "Opmaak om de onderdeelnaam weer te geven"
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr "Activeer Rapportages"
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr "Activeer het genereren van rapporten"
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Foutopsporingsmodus"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr "Rapporten genereren in debug modus (HTML uitvoer)"
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Paginagrootte"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "Standaard paginagrootte voor PDF rapporten"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Testrapporten"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr "Activeer het genereren van testrapporten"
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr "Batchcode Sjabloon"
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen"
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr "Verlopen Voorraad"
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr "Verlopen voorraad functionaliteit inschakelen"
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr "Verkoop Verlopen Voorraad"
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr "Verkoop verlopen voorraad toestaan"
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr "Voorraad Vervaltijd"
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "dagen"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Toon laatste onderdelen"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Toon laatste onderdelen op de startpagina"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr "Link naar externe bedrijfsinformatie"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Afbeelding"
@@ -2625,9 +2643,9 @@ msgstr "is fabrikant"
msgid "Does this company manufacture parts?"
msgstr "Fabriceert dit bedrijf onderdelen?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr "Fabrikant"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Fabrikant selecteren"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Fabrikant selecteren"
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Fabrikant artikel nummer (MPN)"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr "URL voor externe link van het fabrikant onderdeel"
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr "Omschrijving onderdeel fabrikant"
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "Fabrikant onderdeel"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Waarde"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "Parameterwaarde"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "Eenheden"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd
msgid "Supplier"
msgstr "Leverancier"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Leverancier selecteren"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr "Selecteer fabrikant onderdeel"
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Opmerking"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "basisprijs"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "Fabrikant onderdelen"
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Nieuwe fabrikant"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Standaard locatie"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Standaard locatie voor onderdelen in deze categorie"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Geen actie gespecificeerd"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Geen overeenkomende actie gevonden"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "De parameter barcode_data moet worden aangeleverd"
@@ -5494,31 +5515,31 @@ msgstr "Geen overeenkomst gevonden voor streepjescodegegevens"
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Moet voorraadartikelparameter aanleveren"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Geen overeenkomend voorraadartikel gevonden"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr "Streepjescode komt al overeen met Voorraadartikel"
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr "Streepjescode komt al overeen met Voorraadlocatie"
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr "Streepjescode komt al overeen met Onderdeel"
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr "Streepjescode hash komt al overeen met Voorraadartikel"
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr "Streepjescode gekoppeld aan Voorraadartikel"
@@ -5526,226 +5547,226 @@ msgstr "Streepjescode gekoppeld aan Voorraadartikel"
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Voorraadlocatie"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr "Sublocaties"
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Voorraadlocaties"
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr "QR-code voor Voorraadlocatie"
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr "Specificeer een geldige locatie"
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr "Verwijder Voorraadlocatie"
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr "Toegewezen"
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr "Voorraad toewijzen"
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 70078af158..86d6db9165 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API endepunkt ikke funnet"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Oppgi dato"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Bekreft"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Bekreft sletting"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Bekfret sletting av element"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Oppgi passord"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Oppgi nytt passord"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Bekreft passord"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Bekreft nytt passord"
@@ -70,72 +70,73 @@ msgstr "E-post (gjenta)"
msgid "Email address confirmation"
msgstr "Bekreftelsen på e-postaddresse"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Du må angi samme e-post hver gang."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Dupliser serie: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Tom serienummerstreng"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ugyldig gruppe: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ugyldig/ingen gruppe {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Ingen serienummer funnet"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Fil mangler"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Mangler eksternlenke"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Vedlegg"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Velg fil å legge ved"
msgid "Link"
msgstr "Lenke"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Lenke til ekstern URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Kommenter"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Bruker"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "opplastet dato"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Filnavn må ikke være tom"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Ugyldig vedleggskatalog"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnavn inneholder ugyldig tegn '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Filnavn mangler filtype"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Vedlegg med dette filnavnet finnes allerede"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Feil ved endring av navn"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Ugyldig valg"
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Navn"
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Beskrivelse (valgfritt)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "overkategori"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Filnavn"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Ugyldig verdi"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Data fil"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Velg datafil for opplasting"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Filtypen støttes ikke"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Filen er for stor"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Ingen kolonner funnet i filen"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Ingen datalader funnet i fil"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Ingen datalader oppgitt"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Ingen datakolonner angitt"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Mangler påkrevd kolonne: '{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dupliser kolonne: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Tsjekkisk"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Spansk (Meksikansk)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Farsi / Persisk"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Ungarsk"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr "Portugisisk"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr "Portugisisk (Brasilian)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Kinesisk"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Bakgrunnsarbeiderkontroll mislyktes"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "E-post backend ikke konfigurert"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "Helsekontroll av IvenTree system mislyktes"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Ventende"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Plassert"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Fullført"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Kansellert"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Tapt"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Returnert"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Sendt"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Merknad nødvendig"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Skadet"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Ødelagt"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Avvist"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Mottatt mot innkjøpsordre"
msgid "Production"
msgstr "Produksjon"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Ikke en gyldig valutanr"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Ugylding tegn i varenavn"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN må matche regex-mønster {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referansen må samsvare med mønster {pattern}"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Ugyldig tegn i navn ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Overde-verdien må ikke være negativ"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Overde må ikke overstige 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Slett element"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Kryss av i boksen for å bekrefte sletting av element"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Rediger brukerinformasjon"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Velg passord"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Passordfeltene må samsvare"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Systeminformasjon"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "Ugylding valg for overordnet build"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Build ordre"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Build Ordre"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Bygg ordrereferanse"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Referanse"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Kort beskrivelse av build"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Overordnet build"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "Build order som denne build er tildelt til"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "Build order som denne build er tildelt til"
msgid "Part"
msgstr "Del"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Valg del å bygge"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Salg order referanse"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Salgorder som denne build er tildelt til"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Kilde plassering"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Valg sted for å ta lagervare fra for dette prosjektet (la stå tomt for a ta fra hvilken som helst sted)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Sted for destinasjon"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Velg sted hvor fulførte elementer vil bli lagret"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Prosjekt mengde"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Antall lagervare til prosjektet"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Fullførte elementer"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Antall lagervarer som er fullført"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Byggstatus"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Byggstatuskode"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Batch kode"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Batch kode for denne build output"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Opprettelsesdato"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Forventet sluttdato"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Fullført dato"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "fullført av"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Utstedt av"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Brukeren som utstede denne prosjekt order"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Ansvarlig"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Bruker ansvarlig for denne prosjekt order"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Ekstern link"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Notater"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Ekstra prosjekt notater"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Ingen prosjekt utgang"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Prosjekt utdata er allerede utfylt"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er markert som sporbar"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "Lagervare er overtildelt"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Tildeling antallet må være større enn null"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Mengden må væew 1 for serialisert lagervare"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "Valgt lagevare ikke funnet i BOM"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Prosjekt"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "Bygge for å tildele deler"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "Bygge for å tildele deler"
msgid "Stock Item"
msgstr "Lagervare"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Kilde lagervare"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Kilde lagervare"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Kilde lagervare"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Kilde lagervare"
msgid "Quantity"
msgstr "Antall"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Installerings informasjon"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Målets lagervare"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Angi antall for build utgang"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Serienummer"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Angi serienummer for bygge-utganger"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr "Beliggenhet"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "Påkrevd varer er ikke fullt tildelt"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr "BOM varer"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "Varen må være på lager"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Tilgjengelig mengde ({q}) overskredet"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Fullført"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr "Lager kilde"
msgid "Stock can be taken from any available location."
msgstr "Lagervare kan hentes fra alle tilgengelige steder."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Destinasjon"
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Filformatet støttes ikke: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Feil under lesing av fil (ugyldig koding)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Feil under lesing av fil (ugyldig format)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Feil under lesing av fil (feil dimensjon)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Feil under lesing av fil (data kan være skadet)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Fil"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Velg fil å laste opp"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "Velg {name} fil som skal lastes opp"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)"
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr "Valgt verdi er ikke et gyldig alternativ"
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "Verdien må være en boolsk verdi"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Ingen gruppe"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Omstart påkrevd"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr "En innstilling har blitt endrett som krever en serveromstart"
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Firmanavn"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Internt firmanavn"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Standardvaluta"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Standardvaluta"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Last ned fra URL"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Tilat nedlastning av eksterne bilder og filer fra ekstern URL"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Strekkode støtte"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Aktiver skrekkodeleser støtte"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Tilat duplisert IPN"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Tillat flere deler å dele samme IPN"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Tillat redigering av IPN"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "Tillat å endre IPN-verdien mens du redigerer en del"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr "Kopier testdata som standard ved duplisering av en del"
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr "Kopier kategori parametermaler ved oppretting av en del"
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Mal"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Deler er maler som standard"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Montering"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr "Deler kan settes sammen fra andre komponenter som standard"
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Komponent"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr "Deler kan bli brukt som underkomponenter som standard"
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Kjøpbar"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Deler er kjøpbare som standard"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Salgbar"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Deler er salgbare som standard"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Sporbar"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Deler er sporbare som standard"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuelle"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Deler er virtuelle som standard"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "Vis import i visninger"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "Vis importveiviseren i noen deler visninger"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Vis pris i skjemaer"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "Vis delpris i noen skjemaer"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr "Salgsorder referanse prefiks"
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr "Prefiks verdi for salgsorder referanse"
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr "Salgsorder referanse prefiks"
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr "Prefiks verdi for salgsorder referanse"
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr "Aktiver passord glemt"
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr "Ativer funskjon for glemt passord på innloggingssidene"
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr "Aktiver registrering"
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene"
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "Aktiver SSO"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "Aktiver SSO på innloggingssidene"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "E-postadresse kreves"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr "Krevt at brukeren angi e-post ved registrering"
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr "Auto-utfyll SSO brukere"
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Fyll automatisk ut brukeropplysninger fra SSO kontodata"
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr "E-post to ganger"
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr "Ved registrering spør brukere to ganger for e-posten"
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr "Passord to ganger"
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr "Ved registrerting, spør brukere to ganger for passord"
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr "Gruppe for hvilke nye brukere som er tilknyttet registrering"
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr "Brukere må bruke flerfaktorsikkerhet."
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr "Aktiver URL integrering"
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr "Aktiver navigasjonsintegrering"
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr "Aktiver app integrasjon"
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr "Vis abbonerte deler"
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr "Vis abbonerte deler på hjemmesiden"
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr "Vis abbonerte kategorier"
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr "Vis abbonerte delkatekorier på hjemmesiden"
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Vis nyeste deler"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Vis nyeste deler på hjemmesiden"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr "Antall nylig deler"
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr "Vis uvaliderte BOMs"
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr "Vis BOMs som venter validering på hjemmesiden"
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr "Vis nylige lagerendringer"
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr "Vis nylig endret lagervarer på hjemmesiden"
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr "Siste lagertelling"
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr "Antall nylige lagervarer som skal vises på indeksside"
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr "Vis lav lager"
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr "Vis lav lagervarer på hjemmesiden"
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr "Vis tom lagervarer"
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr "Sjetong"
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr "Nøkkel for tilgang"
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr "Hemmelig"
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr "Delt hemmlighet for HMAC"
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr "Melding ID"
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr "Unik Id for denne meldingen"
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr "Vert"
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr "Tittel"
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr "Overskrift for denne meldingen"
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr "Brødtekst"
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr "Arbeidet med"
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr "Var arbeidet med denne meldingen ferdig?"
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Last opp fil"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Sammelign felter"
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr "Sammenlign varer"
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "Deler importert"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Forrige trinn"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "Bilde URL"
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr "Link til ekstern bedriftsinformasjon"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Bilde"
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr "Produserer dette firmaet deler?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Valuta"
@@ -2635,16 +2653,16 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr "Standardvaluta brukt for dette firmaet"
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr "Last ned bilde fra URL"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "Last opp bilde"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Leverandør deler"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "Slett deler"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "Produsentdeler"
@@ -2927,8 +2946,8 @@ msgstr "Leverandør lager"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Bestillingsorder"
@@ -2950,8 +2969,8 @@ msgstr "Ny bestillingsorder"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "Salgsordre"
@@ -2978,7 +2997,7 @@ msgstr "Notater til firma"
msgid "Supplier List"
msgstr "Leverandørliste"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "Slett leverandørdeler"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Slett"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr "Tildelt lagervarer"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr "Spørrefilter (kommaseparert liste over nøkkel=verdiparer),"
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Filtre"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Ingen handling spesifisert"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Ingen samsvarende handling funnet"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "Må oppgi gyldig strekkode_data parameter"
@@ -5494,31 +5515,31 @@ msgstr "Ingen treff funnet for strekkodedata"
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Må oppgi lagervareparameter"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Ingen samsvarende lagervare funnet"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr "Strekkoden samsvarer allerede med lagervare"
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr "Strekkode samsvarer allerede med lagerplassering"
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr "Strekkode samsvarer allerede med delen"
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr "Strekkkoden hash samsvarer allerede med lagervare"
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr "Strekkode tilknyttet lagervare"
@@ -5526,226 +5547,226 @@ msgstr "Strekkode tilknyttet lagervare"
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Seriernummer eksisterer allerede"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr "Sjekk bekreftelsesboksen"
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 1d24e4d172..0ded9077aa 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "Nie znaleziono punktu końcowego API"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
-msgstr ""
+msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym"
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Wprowadź dane"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Potwierdź"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Potwierdź usunięcie"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Potwierdź usuwanie elementu"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Wprowadź hasło"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Wprowadź nowe hasło"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Potwierdź hasło"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Potwierdź nowe hasło"
@@ -70,72 +70,73 @@ msgstr "Adres email (ponownie)"
msgid "Email address confirmation"
msgstr "Potwierdzenie adresu email"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Należy ponownie wpisać ten sam adres e-mail."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Powtórzony numer seryjny: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
-msgstr ""
+msgstr "Nieprawidłowy zakres grupy: {g}"
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Nieprawidłowa grupa: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
-msgstr ""
+msgstr "Nieprawidłowa sekwencja grupy: {g}"
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Nieprawidłowa/Brak grupy {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
-msgstr ""
+msgstr "Liczba unikalnych numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Brak pliku"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Brak zewnętrznego odnośnika"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Załącznik"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Wybierz plik do załączenia"
msgid "Link"
msgstr "Łącze"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Komentarz"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Użytkownik"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Nazwa pliku nie może być pusta"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Nieprawidłowy katalog załącznika"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Nazwa pliku zawiera niedozwolony znak '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Brak rozszerzenia w nazwie pliku"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Załącznik o tej nazwie już istnieje"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Błąd zmiany nazwy pliku"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Błędny wybór"
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Nazwa"
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Nazwa pliku"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Nieprawidłowa wartość"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Plik danych"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Wybierz plik danych do przesłania"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Nieobsługiwany typ pliku"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Plik jest zbyt duży"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Nie znaleziono kolumn w pliku"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Nie znaleziono wierszy danych w pliku"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Nie podano wierszy danych"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Nie podano kolumn danych"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Brakuje wymaganej kolumny: '{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Zduplikowana kolumna: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr "Czeski"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr "Perski"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Węgierski"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
-msgstr ""
+msgstr "Portugalski"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
-msgstr ""
+msgstr "Portugalski (Brazylijski)"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Chiński"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Nie skonfigurowano backendu e-mail"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "W toku"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Umieszczony"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Zakończono"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Anulowano"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Zagubiono"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Zwrócone"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Wysłane"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
-msgstr ""
+msgstr "OK"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Wymaga uwagi"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Uszkodzone"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Zniszczone"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Odrzucone"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -517,7 +519,7 @@ msgstr ""
#: InvenTree/status_codes.py:278
msgid "Split from parent item"
-msgstr ""
+msgstr "Podziel z pozycji nadrzędnej"
#: InvenTree/status_codes.py:279
msgid "Split child item"
@@ -529,7 +531,7 @@ msgstr ""
#: InvenTree/status_codes.py:283
msgid "Converted to variant"
-msgstr ""
+msgstr "Przekonwertowano na wariant"
#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr "Produkcja"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Nieprawidłowy kod waluty"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Błędny znak w nazwie elementu"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Niedozwolony znak w nazwie ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Wartość przedawnienia nie może być ujemna"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Przedawnienie nie może przekroczyć 100 %"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr "Nieprawidłowa wartość przedawnienia"
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Usuń element"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Zaznacz pole aby potwierdzić usunięcie elementu"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Edytuj informacje użytkownika"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Ustaw hasło"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Hasła muszą być zgodne"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Informacja systemowa"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
msgid "Part"
msgstr "Komponent"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "Nie znaleziono wybranego elementu magazynowego w BOM"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Lokalizacja magazynowania przedmiotu"
msgid "Quantity"
msgstr "Ilość"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Numer seryjny"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,147 +1037,147 @@ msgstr ""
msgid "Location"
msgstr "Lokalizacja"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
msgid "Status"
-msgstr ""
+msgstr "Status"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr "Akceptuj niekompletne"
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
-msgstr ""
+msgstr "Element BOM"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "Towar musi znajdować się w magazynie"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
-msgstr ""
+msgstr "Magazyn, z którego mają być pozyskane elementy (pozostaw puste, aby pobrać z dowolnej lokalizacji)"
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr "Wyklucz lokalizację"
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
-msgstr ""
+msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji"
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
-msgstr ""
+msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie"
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
-msgstr ""
+msgstr "Zastępczy magazyn"
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Zakończone"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Nieobsługiwany format pliku: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Błąd odczytu pliku (nieprawidłowe kodowanie)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Błąd odczytu pliku (nieprawidłowy format)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Błąd odczytu pliku (niepoprawny wymiar)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Błąd odczytu pliku (dane mogą być uszkodzone)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Plik"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Wybierz plik do przesłania"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} Plik"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "Wybierz plik {name} do przesłania"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr "Ustawienia wartości"
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr "Wartość musi być wartością binarną"
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr "Wartość musi być liczbą całkowitą"
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr "Brak grupy"
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Wymagane ponowne uruchomienie"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr "Użyj nazwy instancji"
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Nazwa firmy"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Wewnętrzna nazwa firmy"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "Bazowy URL"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "Bazowy adres URL dla instancji serwera"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Domyślna waluta"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Domyślna waluta"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Pobierz z adresu URL"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Obsługa kodu kreskowego"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Włącz obsługę skanera kodów"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr "Wyrażenie regularne IPN"
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Zezwól na powtarzający się IPN"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Zezwól na edycję IPN"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr "Skopiuj BOM komponentu"
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Szablon"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Złożenie"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Komponent"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Możliwość zakupu"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Możliwość sprzedaży"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Możliwość śledzenia"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Wirtualny"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Pokaż cenę w BOM"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr "Dołącz informacje cenowe w tabelach BOM"
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr "Pokaż historię cen"
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
-msgstr ""
+msgstr "Utwórz początkowy stan magazynowy"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "Ceny wewnętrzne"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr "Włącz raporty"
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "dni"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr "Włącz opcję zapomnianego hasła"
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr "Włącz funkcję zapomnianego hasła na stronach logowania"
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr "Włącz rejestrację"
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania"
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr "Włącz SSO"
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr "Włącz SSO na stronach logowania"
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "Adres e-mail jest wymagany"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr "Autouzupełnianie użytkowników SSO"
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO"
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr "E-mail dwa razy"
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail"
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr "Hasło dwukrotnie"
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło"
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr "Grupuj przy rejestracji"
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr "Wymuś MFA"
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych."
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr "Włącz integrację URL"
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr "Włącz wtyczki, aby dodać ścieżki URL"
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr "Włącz integrację z aplikacją"
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr "Włącz wtyczki, aby dodać aplikacje"
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania"
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter"
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr "Pokaż obserwowane części"
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr "Pokaż obserwowane części na stronie głównej"
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr "Pokaż obserwowane kategorie"
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr "Pokaż obserwowane kategorie części na stronie głównej"
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Pokaż najnowsze części"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Pokaż najnowsze części na stronie głównej"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr "Pokaż niski stan magazynowy"
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
-msgstr ""
+msgstr "Pokaż elementy o niskim stanie na stronie głównej"
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
-msgstr ""
+msgstr "Szukaj części"
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr "Stały pasek nawigacyjny"
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr "Format daty"
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr "Preferowany format wyświetlania dat"
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr "Planowanie komponentów"
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Cena"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr "Punkt końcowy"
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr "Aktywny"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr "Sekret"
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr "Współdzielony sekret dla HMAC"
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr "Id wiadomości"
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr "Unikalny identyfikator dla tej wiadomości"
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr "Host, od którego otrzymano tę wiadomość"
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr "Nagłówek"
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr "Nagłówek tej wiadomości"
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr "Zawartość"
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Wyślij plik"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr "Pasujące elementy"
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Poprzedni krok"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "URL zdjęcia"
@@ -2597,7 +2615,7 @@ msgstr "Punkt kontaktowy"
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Obraz"
@@ -2625,9 +2643,9 @@ msgstr "jest producentem"
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Waluta"
@@ -2635,16 +2653,16 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "Wybierz część"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr "Wybierz część"
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Wybierz producenta"
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Numer producenta komponentu"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "Komponent producenta"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Wartość"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "Jednostki"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr "Jednostki parametru"
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "Opakowanie"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr "wielokrotność"
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr "ostatnia aktualizacja"
@@ -2847,9 +2865,9 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr "Pobierz obraz z adresu URL"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "Załaduj obrazek"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Komponenty dostawcy"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "Usuń części"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "Części producenta"
@@ -2927,8 +2946,8 @@ msgstr "Zapasy dostawcy"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Zamówienia zakupu"
@@ -2950,8 +2969,8 @@ msgstr "Nowe zamówienie zakupu"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr "Notatki firmy"
msgid "Supplier List"
msgstr "Lista dostawców"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Usuń"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Towary"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Nowy dostawca"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Now producent"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Klienci"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Nowy klient"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Firmy"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr "Nazwa etykiety"
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr "Opis etykiety"
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr "Etykieta"
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "Aktywne"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "Szerokość [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Wysokość [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr "Wzór nazwy pliku"
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Filtry"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr "Data wystawienia zamówienia"
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr "Data Dostawy Towaru"
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr "Zamówienie"
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr "Wysłana ilość"
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr "Data wysyłki"
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr "Sprawdzone przez"
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr "Numer przesyłki"
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr "Notatki do przesyłki"
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr "Numer śledzenia"
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr "Informacje o śledzeniu przesyłki"
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr "Przesyłka została już wysłana"
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr "Linia"
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr "Przesyłka"
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr "Komponent"
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr "Zamówienie nie może zostać anulowane"
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr "Oczekujące przesyłki"
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr "Akcje"
@@ -3978,201 +3998,202 @@ msgstr "Akcje"
msgid "New Shipment"
msgstr "Nowa wysyłka"
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr "Nie znaleziono ceny"
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr "Ważny"
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr "Ta opcja musi być zaznaczona"
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr "Musi być większe niż zero"
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr "Musi być prawidłową ilością"
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr "To pole jest wymagane"
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Domyślna lokalizacja"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr "Dostępna ilość"
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr "W Zamówieniu"
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr "Wybierz kategorię części"
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Domyślna lokalizacja dla komponentów w tej kategorii"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategoria komponentu"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "Kategorie części"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Części"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr "Nieprawidłowy wybór dla części nadrzędnej"
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, 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:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "Nazwa komponentu"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr "Czy szablon"
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr "Czy ta część jest wariantem innej części?"
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Opis komponentu"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr "Domyślne wygasanie"
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr "Czy ten komponent może być zbudowany z innych komponentów?"
-#: part/models.py:953
+#: part/models.py:891
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:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:979
+#: part/models.py:917
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:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr "Tworzenie użytkownika"
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr "Dane"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "ID komponentu"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr "Unikalny wartość ID komponentu"
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr "Nazwa komponentu"
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr "IPN komponentu"
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr "Wartość IPN części"
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr "Poziom"
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Opcjonalne"
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Dziedziczone"
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr "Waluta zakupu tego towaru"
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr "Usuń istniejące dane"
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr "Pomiń nieprawidłowe wiersze"
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr "Wyczyść istniejący BOM"
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr "Nie podano ilości"
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr "Nieprawidłowa ilość"
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "Na stanie"
@@ -5386,20 +5407,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr "Nieznana baza danych"
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr "Ustaw kategorię części"
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5412,79 +5433,79 @@ msgstr ""
msgid "None"
msgstr "Żaden"
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr "Kod QR części"
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr "Wybierz obrazek części"
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr "Zaktualizowano zdjęcie części"
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr "Nie znaleziono obrazka części"
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr "Potwierdź usunięcie części"
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr "Część została usunięta"
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr "Cennik części"
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Nie określono działania"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "Należy określić parametr barcode_data"
@@ -5496,31 +5517,31 @@ msgstr "Nie znaleziono wyników dla danych kodu kreskowego"
msgid "Match found for barcode data"
msgstr "Znaleziono wyniki dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Nie znaleziono pasujących stanów magazynowych"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5528,226 +5549,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr "Konfiguracja wtyczki"
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr "Konfiguracja wtyczek"
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr "Klucz"
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr "Klucz wtyczki"
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr "Nazwa wtyczki"
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr "Czy wtyczka jest aktywna"
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr "Wtyczka"
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr "Włącz PO"
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr "Włącz funkcjonalność PO w interfejsie InvenTree"
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr "Klucz API"
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr "Klucz wymagany do uzyskania dostępu do zewnętrznego API"
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr "Liczbowy"
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr "Ustawienie numeryczne"
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr "Ustawienie jednokrotnego wyboru"
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr "Ustawienie wielokrotnego wyboru"
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr "Źródłowy adres URL"
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr "Źródło pakietu - może to być niestandardowy rejestr lub ścieżka VCS"
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr "Nazwa pakietu"
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr "Nazwa pakietu wtyczki - może również zawierać wskaźnik wersji"
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr "Potwierdź instalację wtyczki"
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr "Spowoduje to zainstalowanie tej wtyczki w bieżącej instancji. Instancja przejdzie do trybu konserwacji."
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr "Instalacja nie została potwierdzona"
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr "Nazwa szablonu"
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr "Filtr części"
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr "Wycinek"
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5764,7 +5785,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5778,12 +5799,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr "Wynik"
@@ -5813,362 +5834,362 @@ msgstr "Zainstalowane elementy"
msgid "Serial"
msgstr "Numer seryjny"
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr "Właściciel"
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr "Wybierz właściciela"
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr "Nadrzędny towar"
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr "Wybierz pasującą część dostawcy dla tego towaru"
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr "Zainstalowane w"
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr "Data ważności"
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr "Usuń po wyczerpaniu"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Ilość nie może przekraczać dostępnej ilości towaru ({n})"
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr "Notatki do wpisu"
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr "Należy podać wartość dla tego testu"
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr "Nazwa testu"
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr "Wynik testu"
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr "Cena zakupu tego towaru"
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr "Część musi być dostępna do sprzedaży"
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6485,7 +6506,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Lokacje stanu magazynowego"
@@ -6537,7 +6558,7 @@ msgstr ""
msgid "Child Items"
msgstr "Elementy podrzędne"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6562,55 +6583,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr "Wróć do stanu magazynowego"
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr "Usuń wszystkie dane testowe"
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6884,7 +6905,7 @@ msgid "Install Plugin"
msgstr "Instaluj wtyczkę"
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7573,6 +7594,14 @@ msgstr "Dodaj link"
msgid "Add Attachment"
msgstr "Dodaj załącznik"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr "Wymagane ponowne uruchomienie serwera"
@@ -7709,31 +7738,27 @@ msgstr "Nieobsługiwany kod błędu"
msgid "Error code"
msgstr "Kod błędu"
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr "Nie znaleziono załączników"
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "Edytuj załącznik"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr "Potwierdź usunięcie"
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "Usuń załącznik"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr "Data przesłania"
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr "Edytuj załącznik"
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr "Usuń załącznik"
@@ -7950,6 +7975,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8178,20 +8204,20 @@ msgstr ""
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8199,7 +8225,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8851,15 +8877,15 @@ msgstr ""
msgid "Items"
msgstr "Przedmioty"
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8872,13 +8898,13 @@ msgid "Total"
msgstr "Razem"
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr "Cena jednostkowa"
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr "Cena całkowita"
@@ -8891,39 +8917,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9016,39 +9042,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr "Cena zakupu"
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr "Zaktualizuj cenę jednostkową"
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9380,11 +9406,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9520,7 +9546,7 @@ msgstr "Weź"
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr "Dodaj"
@@ -10255,51 +10281,51 @@ msgstr "Użytkownicy"
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "Informacje osobiste"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Uprawnienia"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "Ważne daty"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "Grupa"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Widok"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "Zmień"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:220
+#: users/models.py:219
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 671df18702..6789d2f048 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API endpoint não encontrado"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Insira uma Data"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Confirmar"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Confirmar exclusão"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Confirmar exclusão do item"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Digite a senha"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Insira uma nova senha"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Confirmar senha"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Confirmar nova senha"
@@ -70,72 +70,73 @@ msgstr "E-mail (novamente)"
msgid "Email address confirmation"
msgstr "Confirmação do endereço de email"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Nenhuma ação especificada"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Nenhuma ação correspondente encontrada"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 24209c6f0e..e523398046 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-05-25 01:01+0000\n"
+"POT-Creation-Date: 2022-05-31 04:27+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -22,7 +22,7 @@ msgstr ""
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:46
+#: InvenTree/exceptions.py:50
msgid "Error details can be found in the admin panel"
msgstr ""
@@ -31,7 +31,7 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:620
+#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
@@ -80,7 +80,7 @@ msgstr ""
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:307 order/models.py:461
+#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
msgid "Invalid quantity provided"
msgstr ""
@@ -135,11 +135,11 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:132 order/models.py:1215
+#: company/models.py:569 order/models.py:139 order/models.py:1273
#: part/models.py:855
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/order.js:2469
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
#: templates/js/translated/part.js:1441
msgid "Link"
msgstr ""
@@ -157,12 +157,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
+#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1581
+#: common/models.py:1582 common/models.py:1816 common/models.py:1817
+#: common/models.py:2044 common/models.py:2045 part/models.py:2357
#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2522
+#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
+#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1802
#: company/models.py:420 label/models.py:104 part/models.py:799
#: part/models.py:2541 plugin/models.py:99 report/models.py:169
#: templates/InvenTree/notifications/notifications.html:84
@@ -208,9 +208,10 @@ msgstr ""
#: templates/InvenTree/settings/plugin.html:132
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:327
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:615
+#: templates/js/translated/company.js:539
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:615
#: templates/js/translated/part.js:767 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2283
msgid "Name"
msgstr ""
@@ -219,22 +220,22 @@ msgstr ""
#: company/models.py:575 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:130 part/models.py:822 part/templates/part/category.html:74
+#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
#: part/templates/part/set_category.html:14 report/models.py:182
#: report/models.py:547 report/models.py:586
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:872
-#: templates/js/translated/build.js:2408 templates/js/translated/company.js:345
-#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:1577
-#: templates/js/translated/order.js:1785 templates/js/translated/order.js:2269
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:851
+#: templates/js/translated/build.js:2476 templates/js/translated/company.js:401
+#: templates/js/translated/company.js:666
+#: templates/js/translated/company.js:957 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:1888 templates/js/translated/order.js:2476
#: templates/js/translated/part.js:674 templates/js/translated/part.js:1082
#: templates/js/translated/part.js:1355 templates/js/translated/part.js:1755
-#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2304 templates/js/translated/stock.js:2359
+#: templates/js/translated/part.js:1824 templates/js/translated/stock.js:1676
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2350
msgid "Description"
msgstr ""
@@ -409,7 +410,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
@@ -417,141 +418,145 @@ msgstr ""
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
-#: InvenTree/status_codes.py:325
+#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Lost"
msgstr ""
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:187
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1083
-#: templates/js/translated/order.js:3057 templates/js/translated/order.js:3374
+#: InvenTree/status_codes.py:143 order/models.py:1141
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:180
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:181
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:182
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:186
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:278
+#: InvenTree/status_codes.py:261
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:263
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:264
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:266
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:284
+#: InvenTree/status_codes.py:267
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:268
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:287
+#: InvenTree/status_codes.py:270
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:272
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:290
+#: InvenTree/status_codes.py:273
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:275
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:293
+#: InvenTree/status_codes.py:276
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:278
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:296
+#: InvenTree/status_codes.py:279
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2030
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2020
msgid "Merged stock items"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:283
msgid "Converted to variant"
msgstr ""
-#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:303
+#: InvenTree/status_codes.py:286
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:305
+#: InvenTree/status_codes.py:288
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:306
+#: InvenTree/status_codes.py:289
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:307
+#: InvenTree/status_codes.py:290
msgid "Consumed by build order"
msgstr ""
-#: InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:292
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:324
+#: InvenTree/status_codes.py:307
msgid "Production"
msgstr ""
@@ -640,15 +645,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:237 order/models.py:589
-#: order/models.py:884 part/models.py:2785
+#: build/models.py:199 order/models.py:295 order/models.py:647
+#: order/models.py:942 part/models.py:2785
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:879
-#: templates/js/translated/build.js:1794 templates/js/translated/order.js:1816
-#: templates/js/translated/order.js:2017 templates/js/translated/order.js:3241
-#: templates/js/translated/order.js:3726
+#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
+#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
+#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
+#: templates/js/translated/order.js:3933
msgid "Reference"
msgstr ""
@@ -667,10 +672,10 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:983 order/models.py:1072 part/models.py:354
+#: order/models.py:1041 order/models.py:1130 part/models.py:354
#: part/models.py:2303 part/models.py:2319 part/models.py:2338
#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
+#: part/models.py:2669 part/models.py:2760 part/models.py:3047
#: part/serializers.py:917 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -682,19 +687,21 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
-#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:826
-#: templates/js/translated/build.js:1158 templates/js/translated/build.js:1664
-#: templates/js/translated/build.js:2100 templates/js/translated/build.js:2413
-#: templates/js/translated/company.js:492
-#: templates/js/translated/company.js:749 templates/js/translated/order.js:100
+#: templates/js/translated/bom.js:687 templates/js/translated/bom.js:805
+#: templates/js/translated/build.js:1153 templates/js/translated/build.js:1647
+#: templates/js/translated/build.js:2083 templates/js/translated/build.js:2481
+#: templates/js/translated/company.js:252
+#: templates/js/translated/company.js:486
+#: templates/js/translated/company.js:607
+#: templates/js/translated/company.js:866 templates/js/translated/order.js:100
#: templates/js/translated/order.js:883 templates/js/translated/order.js:1315
-#: templates/js/translated/order.js:1770 templates/js/translated/order.js:2612
-#: templates/js/translated/order.js:3010 templates/js/translated/order.js:3225
+#: templates/js/translated/order.js:1873 templates/js/translated/order.js:2819
+#: templates/js/translated/order.js:3217 templates/js/translated/order.js:3432
#: templates/js/translated/part.js:1067 templates/js/translated/part.js:1137
#: templates/js/translated/part.js:1333 templates/js/translated/stock.js:531
#: templates/js/translated/stock.js:696 templates/js/translated/stock.js:903
-#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:2385
-#: templates/js/translated/stock.js:2580 templates/js/translated/stock.js:2714
+#: templates/js/translated/stock.js:1633 templates/js/translated/stock.js:2376
+#: templates/js/translated/stock.js:2571 templates/js/translated/stock.js:2705
msgid "Part"
msgstr ""
@@ -711,7 +718,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:247 build/serializers.py:790
-#: templates/js/translated/build.js:2088 templates/js/translated/order.js:2600
+#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
@@ -760,12 +767,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:134 part/models.py:994
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2282
+#: build/models.py:292 order/models.py:141 part/models.py:994
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:611
+#: build/models.py:296 order/models.py:669
msgid "Target completion date"
msgstr ""
@@ -773,8 +780,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:280
-#: templates/js/translated/build.js:2490
+#: build/models.py:300 order/models.py:338
+#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
@@ -782,7 +789,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2458
+#: build/models.py:314 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
@@ -791,11 +798,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:148
+#: build/templates/build/detail.html:115 order/models.py:155
#: order/templates/order/order_base.html:176
#: order/templates/order/sales_order_base.html:183 part/models.py:998
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:2470 templates/js/translated/order.js:1611
+#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
@@ -814,7 +821,7 @@ msgstr ""
#: build/models.py:334 build/serializers.py:390
#: build/templates/build/sidebar.html:21 company/models.py:134
#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:152 order/models.py:886 order/models.py:1193
+#: order/models.py:159 order/models.py:944 order/models.py:1251
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:983
#: part/templates/part/part_sidebar.html:59
@@ -823,11 +830,11 @@ msgstr ""
#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
#: stock/serializers.py:826 stock/serializers.py:958
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1065
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1937
-#: templates/js/translated/order.js:2088 templates/js/translated/order.js:2480
-#: templates/js/translated/order.js:3399 templates/js/translated/order.js:3797
-#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1926
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
+#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
+#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
+#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
@@ -860,7 +867,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1355
+#: build/models.py:1238 order/models.py:1413
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -873,7 +880,7 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1375 stock/templates/stock/item_base.html:177
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2386
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -888,12 +895,12 @@ msgstr ""
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
-#: templates/js/translated/build.js:2102 templates/js/translated/build.js:2538
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:2613
-#: templates/js/translated/order.js:2917 templates/js/translated/order.js:2922
-#: templates/js/translated/order.js:3017 templates/js/translated/order.js:3107
+#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2643
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:2820
+#: templates/js/translated/order.js:3124 templates/js/translated/order.js:3129
+#: templates/js/translated/order.js:3224 templates/js/translated/order.js:3314
#: templates/js/translated/stock.js:532 templates/js/translated/stock.js:697
-#: templates/js/translated/stock.js:2458
+#: templates/js/translated/stock.js:2449
msgid "Stock Item"
msgstr ""
@@ -903,12 +910,12 @@ msgstr ""
#: build/models.py:1405 build/serializers.py:190
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
+#: build/templates/build/detail.html:34 common/models.py:1624
#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:877 order/models.py:1395 order/serializers.py:1103
+#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
#: part/forms.py:137 part/forms.py:153 part/models.py:2776
-#: part/templates/part/detail.html:953 part/templates/part/detail.html:1039
+#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -919,21 +926,21 @@ msgstr ""
#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
-#: templates/js/translated/bom.js:887 templates/js/translated/build.js:422
+#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
#: templates/js/translated/build.js:574 templates/js/translated/build.js:765
-#: templates/js/translated/build.js:1180 templates/js/translated/build.js:1690
-#: templates/js/translated/build.js:2103
+#: templates/js/translated/build.js:1175 templates/js/translated/build.js:1673
+#: templates/js/translated/build.js:2086
#: templates/js/translated/model_renderers.js:108
#: templates/js/translated/order.js:117 templates/js/translated/order.js:886
-#: templates/js/translated/order.js:1822 templates/js/translated/order.js:2023
-#: templates/js/translated/order.js:2614 templates/js/translated/order.js:2936
-#: templates/js/translated/order.js:3024 templates/js/translated/order.js:3113
-#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3732
+#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
+#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
+#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:2507 templates/js/translated/stock.js:2592
+#: templates/js/translated/stock.js:2498 templates/js/translated/stock.js:2583
msgid "Quantity"
msgstr ""
@@ -950,7 +957,7 @@ msgid "Destination stock item"
msgstr ""
#: build/serializers.py:135 build/serializers.py:660
-#: templates/js/translated/build.js:1168
+#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
@@ -974,7 +981,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:305
+#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
#: stock/serializers.py:294
@@ -1020,12 +1027,12 @@ msgstr ""
#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
-#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1213
-#: templates/js/translated/order.js:2929 templates/js/translated/order.js:3032
-#: templates/js/translated/order.js:3040 templates/js/translated/order.js:3121
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:3136 templates/js/translated/order.js:3239
+#: templates/js/translated/order.js:3247 templates/js/translated/order.js:3328
#: templates/js/translated/part.js:180 templates/js/translated/stock.js:533
#: templates/js/translated/stock.js:698 templates/js/translated/stock.js:905
-#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:1787 templates/js/translated/stock.js:2390
msgid "Location"
msgstr ""
@@ -1034,12 +1041,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:605
+#: build/templates/build/detail.html:62 order/models.py:663
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
-#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2442
-#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1581
-#: templates/js/translated/order.js:2274 templates/js/translated/stock.js:1772
-#: templates/js/translated/stock.js:2476 templates/js/translated/stock.js:2608
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
+#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
+#: templates/js/translated/order.js:2481 templates/js/translated/stock.js:1762
+#: templates/js/translated/stock.js:2467 templates/js/translated/stock.js:2599
msgid "Status"
msgstr ""
@@ -1100,7 +1107,7 @@ msgid "No build outputs have been created for this build order"
msgstr ""
#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: part/models.py:3039
msgid "BOM Item"
msgstr ""
@@ -1235,13 +1242,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:890
+#: build/templates/build/detail.html:131 order/models.py:948
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:2482 templates/js/translated/order.js:1598
-#: templates/js/translated/order.js:1884 templates/js/translated/order.js:2290
-#: templates/js/translated/order.js:3310 templates/js/translated/part.js:971
+#: templates/js/translated/build.js:2550 templates/js/translated/order.js:1677
+#: templates/js/translated/order.js:1987 templates/js/translated/order.js:2497
+#: templates/js/translated/order.js:3517 templates/js/translated/part.js:971
msgid "Target Date"
msgstr ""
@@ -1268,14 +1275,14 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1069
-#: order/models.py:1165 order/models.py:1299
+#: build/templates/build/detail.html:94 order/models.py:1127
+#: order/models.py:1223 order/models.py:1357
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:370
-#: templates/js/translated/order.js:2229
+#: templates/js/translated/order.js:2436
msgid "Sales Order"
msgstr ""
@@ -1310,8 +1317,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1005
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1926
+#: build/templates/build/detail.html:49 order/models.py:1063
+#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1325,10 +1332,10 @@ msgstr ""
#: build/templates/build/detail.html:80
#: stock/templates/stock/item_base.html:170
-#: templates/js/translated/build.js:1184
+#: templates/js/translated/build.js:1179
#: templates/js/translated/model_renderers.js:112
-#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1786
-#: templates/js/translated/stock.js:2615
+#: templates/js/translated/stock.js:971 templates/js/translated/stock.js:1776
+#: templates/js/translated/stock.js:2606
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:242
msgid "Batch"
@@ -1337,7 +1344,7 @@ msgstr ""
#: build/templates/build/detail.html:126
#: order/templates/order/order_base.html:149
#: order/templates/order/sales_order_base.html:158
-#: templates/js/translated/build.js:2450
+#: templates/js/translated/build.js:2518
msgid "Created"
msgstr ""
@@ -1357,7 +1364,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:176 templates/js/translated/build.js:1916
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1899
msgid "Unallocate stock"
msgstr ""
@@ -1387,7 +1394,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
-#: company/templates/company/detail.html:84
+#: company/templates/company/detail.html:85
#: part/templates/part/category.html:177 templates/js/translated/order.js:926
msgid "Order Parts"
msgstr ""
@@ -1463,8 +1470,8 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:307 build/templates/build/sidebar.html:19
-#: company/templates/company/manufacturer_part.html:149
-#: company/templates/company/manufacturer_part_sidebar.html:7
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:82
#: order/templates/order/sales_order_detail.html:129
@@ -1478,11 +1485,11 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:503
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:504
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1494,18 +1501,6 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:44
-#: order/templates/order/purchase_orders.html:34
-#: order/templates/order/sales_orders.html:37
-msgid "Display calendar view"
-msgstr ""
-
-#: build/templates/build/index.html:47
-#: order/templates/order/purchase_orders.html:37
-#: order/templates/order/sales_orders.html:40
-msgid "Display list view"
-msgstr ""
-
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
@@ -1729,7 +1724,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1411
+#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
@@ -2102,7 +2097,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1245 common/models.py:1574
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2283,160 +2278,176 @@ msgid "Display parts in search preview window"
msgstr ""
#: common/models.py:1429
-msgid "Hide Inactive Parts"
+msgid "Seach Supplier Parts"
msgstr ""
#: common/models.py:1430
-msgid "Excluded inactive parts from search preview window"
+msgid "Display supplier parts in search preview window"
msgstr ""
#: common/models.py:1436
-msgid "Search Categories"
+msgid "Search Manufacturer Parts"
msgstr ""
#: common/models.py:1437
-msgid "Display part categories in search preview window"
+msgid "Display manufacturer parts in search preview window"
msgstr ""
#: common/models.py:1443
-msgid "Search Stock"
+msgid "Hide Inactive Parts"
msgstr ""
#: common/models.py:1444
-msgid "Display stock items in search preview window"
+msgid "Excluded inactive parts from search preview window"
msgstr ""
#: common/models.py:1450
-msgid "Hide Unavailable Stock Items"
+msgid "Search Categories"
msgstr ""
#: common/models.py:1451
-msgid "Exclude stock items which are not available from the search preview window"
+msgid "Display part categories in search preview window"
msgstr ""
#: common/models.py:1457
-msgid "Search Locations"
+msgid "Search Stock"
msgstr ""
#: common/models.py:1458
-msgid "Display stock locations in search preview window"
+msgid "Display stock items in search preview window"
msgstr ""
#: common/models.py:1464
-msgid "Search Companies"
+msgid "Hide Unavailable Stock Items"
msgstr ""
#: common/models.py:1465
-msgid "Display companies in search preview window"
+msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
#: common/models.py:1471
-msgid "Search Purchase Orders"
+msgid "Search Locations"
msgstr ""
#: common/models.py:1472
-msgid "Display purchase orders in search preview window"
+msgid "Display stock locations in search preview window"
msgstr ""
#: common/models.py:1478
-msgid "Exclude Inactive Purchase Orders"
+msgid "Search Companies"
msgstr ""
#: common/models.py:1479
-msgid "Exclude inactive purchase orders from search preview window"
+msgid "Display companies in search preview window"
msgstr ""
#: common/models.py:1485
-msgid "Search Sales Orders"
+msgid "Search Purchase Orders"
msgstr ""
#: common/models.py:1486
-msgid "Display sales orders in search preview window"
+msgid "Display purchase orders in search preview window"
msgstr ""
#: common/models.py:1492
-msgid "Exclude Inactive Sales Orders"
+msgid "Exclude Inactive Purchase Orders"
msgstr ""
#: common/models.py:1493
-msgid "Exclude inactive sales orders from search preview window"
+msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
#: common/models.py:1499
-msgid "Search Preview Results"
+msgid "Search Sales Orders"
msgstr ""
#: common/models.py:1500
-msgid "Number of results to show in each section of the search preview window"
+msgid "Display sales orders in search preview window"
msgstr ""
#: common/models.py:1506
-msgid "Show Quantity in Forms"
+msgid "Exclude Inactive Sales Orders"
msgstr ""
#: common/models.py:1507
-msgid "Display available part quantity in some forms"
+msgid "Exclude inactive sales orders from search preview window"
msgstr ""
#: common/models.py:1513
-msgid "Escape Key Closes Forms"
+msgid "Search Preview Results"
msgstr ""
#: common/models.py:1514
-msgid "Use the escape key to close modal forms"
+msgid "Number of results to show in each section of the search preview window"
msgstr ""
#: common/models.py:1520
-msgid "Fixed Navbar"
+msgid "Show Quantity in Forms"
msgstr ""
#: common/models.py:1521
-msgid "The navbar position is fixed to the top of the screen"
+msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:1527
-msgid "Date Format"
+msgid "Escape Key Closes Forms"
msgstr ""
#: common/models.py:1528
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1534
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1535
+msgid "The navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1541
+msgid "Date Format"
+msgstr ""
+
+#: common/models.py:1542
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1556 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1557
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1625 company/forms.py:39
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:917
+#: common/models.py:1632 company/serializers.py:285
+#: company/templates/company/supplier_part.html:263 order/models.py:975
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1633
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1793 common/models.py:1930
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1794
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1803
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1808 part/models.py:973 plugin/models.py:105
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2444,67 +2455,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1809
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1823
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1824
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1831
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1832
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1897
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1898
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1906
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1907
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1914
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1915
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1921
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1922
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1931
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1936
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1937
msgid "Was the work on this message finished?"
msgstr ""
@@ -2558,7 +2569,7 @@ msgstr ""
#: company/models.py:104 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:349
+#: templates/js/translated/company.js:405
msgid "Website"
msgstr ""
@@ -2654,9 +2665,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
-#: templates/js/translated/company.js:333
-#: templates/js/translated/company.js:517
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:235
+#: templates/js/translated/company.js:389
+#: templates/js/translated/company.js:488
+#: templates/js/translated/company.js:632
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:235
#: templates/js/translated/table_filters.js:411
msgid "Manufacturer"
msgstr ""
@@ -2667,8 +2679,10 @@ msgstr ""
#: company/models.py:331 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
-#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1804
+#: templates/js/translated/company.js:255
+#: templates/js/translated/company.js:487
+#: templates/js/translated/company.js:648
+#: templates/js/translated/company.js:935 templates/js/translated/order.js:1907
#: templates/js/translated/part.js:246 templates/js/translated/part.js:956
msgid "MPN"
msgstr ""
@@ -2698,8 +2712,9 @@ msgstr ""
#: company/models.py:427
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:776 templates/js/translated/stock.js:1304
+#: stock/models.py:2195 templates/js/translated/company.js:540
+#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
+#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
@@ -2710,7 +2725,7 @@ msgstr ""
#: company/models.py:434 part/models.py:940 part/models.py:2549
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:782
+#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
@@ -2723,11 +2738,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:252
+#: company/templates/company/supplier_part.html:87 order/models.py:310
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
-#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:1564
+#: templates/js/translated/company.js:254
+#: templates/js/translated/company.js:393
+#: templates/js/translated/company.js:891 templates/js/translated/order.js:1643
#: templates/js/translated/part.js:216 templates/js/translated/part.js:924
#: templates/js/translated/table_filters.js:415
msgid "Supplier"
@@ -2738,8 +2754,9 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:556 company/templates/company/supplier_part.html:97
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1791
-#: templates/js/translated/part.js:227 templates/js/translated/part.js:942
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
+#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
+#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
@@ -2776,7 +2793,7 @@ msgstr ""
#: company/models.py:587 company/templates/company/supplier_part.html:118
#: stock/models.py:631 stock/templates/stock/item_base.html:245
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1922
+#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
@@ -2806,7 +2823,7 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+#: templates/InvenTree/search.html:177 templates/js/translated/company.js:378
msgid "Company"
msgstr ""
@@ -2824,7 +2841,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:265
+#: templates/js/translated/company.js:321
msgid "Edit Company"
msgstr ""
@@ -2847,12 +2864,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:600
+#: company/templates/company/company_base.html:86 order/models.py:658
#: order/templates/order/sales_order_base.html:116 stock/models.py:650
#: stock/models.py:651 stock/serializers.py:714
#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:2251
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
+#: templates/js/translated/stock.js:2431
#: templates/js/translated/table_filters.js:419
msgid "Customer"
msgstr ""
@@ -2871,8 +2888,8 @@ msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_sidebar.html:9
-#: templates/InvenTree/search.html:118
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2886,32 +2903,24 @@ msgstr ""
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:31
-#: company/templates/company/detail.html:78
-#: company/templates/company/manufacturer_part.html:132
-#: company/templates/company/manufacturer_part.html:177
-#: part/templates/part/category.html:168 part/templates/part/detail.html:361
-#: part/templates/part/detail.html:390
-msgid "Options"
-msgstr ""
-
#: company/templates/company/detail.html:36
-#: company/templates/company/detail.html:83
+#: company/templates/company/detail.html:84
#: part/templates/part/category.html:176
msgid "Order parts"
msgstr ""
#: company/templates/company/detail.html:41
-#: company/templates/company/detail.html:88
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
#: company/templates/company/detail.html:42
-#: company/templates/company/detail.html:89
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2919,88 +2928,76 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:380
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:382
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:106
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:116
+#: company/templates/company/detail.html:117
#: company/templates/company/sidebar.html:12
#: company/templates/company/supplier_part_sidebar.html:7
#: 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:77 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:190 templates/navbar.html:50
+#: templates/js/translated/search.js:275 templates/navbar.html:50
#: users/models.py:43
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:120
+#: company/templates/company/detail.html:121
#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:121
+#: company/templates/company/detail.html:122
#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:142
+#: company/templates/company/detail.html:143
#: company/templates/company/sidebar.html:20
#: 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:100 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:214 templates/navbar.html:61
+#: templates/js/translated/search.js:299 templates/navbar.html:61
#: users/models.py:44
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:146
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:147
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:167
-#: templates/js/translated/build.js:1675
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1658
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:185
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:375
-#: company/templates/company/manufacturer_part.html:264
-#: part/templates/part/detail.html:451
-msgid "Delete Supplier Parts?"
-msgstr ""
-
-#: company/templates/company/detail.html:376
-#: company/templates/company/manufacturer_part.html:265
-#: part/templates/part/detail.html:452
-msgid "All selected supplier parts will be deleted"
-msgstr ""
-
#: company/templates/company/index.html:8
msgid "Supplier List"
msgstr ""
#: company/templates/company/manufacturer_part.html:15 company/views.py:47
-#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178
+#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -3013,12 +3010,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:565
+#: templates/js/translated/company.js:680
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:566
+#: templates/js/translated/company.js:681
msgid "Delete manufacturer part"
msgstr ""
@@ -3034,55 +3031,46 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:119
#: company/templates/company/supplier_part.html:15 company/views.py:41
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
-#: templates/InvenTree/search.html:188 templates/navbar.html:48
+#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:134
+#: company/templates/company/manufacturer_part.html:136
#: part/templates/part/detail.html:363
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:134
-#: company/templates/company/manufacturer_part.html:179
-#: company/templates/company/manufacturer_part.html:303
-#: part/templates/part/detail.html:363 part/templates/part/detail.html:392
-#: templates/js/translated/bom.js:699 templates/js/translated/company.js:426
-#: templates/js/translated/helpers.js:32 users/models.py:220
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
+#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
+#: users/models.py:220
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:164
+#: 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:179 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:168
+#: company/templates/company/manufacturer_part.html:170
#: part/templates/part/detail.html:184
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:179
+#: company/templates/company/manufacturer_part.html:183
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:240
-#: part/templates/part/detail.html:853
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:835
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:288
-msgid "Selected parameters will be deleted"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:300
-msgid "Delete Parameters"
-msgstr ""
-
#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
@@ -3102,18 +3090,18 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:615
#: stock/templates/stock/item_base.html:238
-#: templates/js/translated/company.js:790 templates/js/translated/order.js:884
-#: templates/js/translated/stock.js:1879
+#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
+#: templates/js/translated/stock.js:1869
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:863
+#: templates/js/translated/company.js:980
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:864
+#: templates/js/translated/company.js:981
msgid "Delete supplier part"
msgstr ""
@@ -3188,11 +3176,11 @@ msgstr ""
#: part/templates/part/part_sidebar.html:14
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:150
+#: templates/InvenTree/search.html:151
#: templates/InvenTree/settings/sidebar.html:43
#: templates/js/translated/bom.js:554 templates/js/translated/part.js:678
#: templates/js/translated/part.js:1226 templates/js/translated/part.js:1387
-#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1697
+#: templates/js/translated/stock.js:904 templates/js/translated/stock.js:1687
#: templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3218,8 +3206,8 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/search.js:138
-#: templates/js/translated/stock.js:2316 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -3231,7 +3219,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:208
+#: company/views.py:53 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
@@ -3240,7 +3228,7 @@ msgstr ""
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:167
+#: company/views.py:61 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
@@ -3330,313 +3318,313 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:130
+#: order/models.py:137
msgid "Order description"
msgstr ""
-#: order/models.py:132 order/models.py:1216
+#: order/models.py:139 order/models.py:1274
msgid "Link to external page"
msgstr ""
-#: order/models.py:140
+#: order/models.py:147
msgid "Created By"
msgstr ""
-#: order/models.py:147
+#: order/models.py:154
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:152
+#: order/models.py:159
msgid "Order notes"
msgstr ""
-#: order/models.py:238 order/models.py:590
+#: order/models.py:296 order/models.py:648
msgid "Order reference"
msgstr ""
-#: order/models.py:243 order/models.py:605
+#: order/models.py:301 order/models.py:663
msgid "Purchase order status"
msgstr ""
-#: order/models.py:253
+#: order/models.py:311
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:256 order/templates/order/order_base.html:124
-#: templates/js/translated/order.js:1573
+#: order/models.py:314 order/templates/order/order_base.html:124
+#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:256
+#: order/models.py:314
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:263
+#: order/models.py:321
msgid "received by"
msgstr ""
-#: order/models.py:268
+#: order/models.py:326
msgid "Issue Date"
msgstr ""
-#: order/models.py:269
+#: order/models.py:327
msgid "Date order was issued"
msgstr ""
-#: order/models.py:274
+#: order/models.py:332
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:275
+#: order/models.py:333
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:281
+#: order/models.py:339
msgid "Date order was completed"
msgstr ""
-#: order/models.py:310
+#: order/models.py:368
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:456
+#: order/models.py:514
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:601
+#: order/models.py:659
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:607
+#: order/models.py:665
msgid "Customer Reference "
msgstr ""
-#: order/models.py:607
+#: order/models.py:665
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:612
+#: order/models.py:670
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:615 order/models.py:1170
-#: templates/js/translated/order.js:2298 templates/js/translated/order.js:2449
+#: order/models.py:673 order/models.py:1228
+#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:622
+#: order/models.py:680
msgid "shipped by"
msgstr ""
-#: order/models.py:688
+#: order/models.py:746
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:692
+#: order/models.py:750
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:695
+#: order/models.py:753
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:698
+#: order/models.py:756
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:878
+#: order/models.py:936
msgid "Item quantity"
msgstr ""
-#: order/models.py:884
+#: order/models.py:942
msgid "Line item reference"
msgstr ""
-#: order/models.py:886
+#: order/models.py:944
msgid "Line item notes"
msgstr ""
-#: order/models.py:891
+#: order/models.py:949
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:909
+#: order/models.py:967
msgid "Context"
msgstr ""
-#: order/models.py:910
+#: order/models.py:968
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:918
+#: order/models.py:976
msgid "Unit price"
msgstr ""
-#: order/models.py:951
+#: order/models.py:1009
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:958
+#: order/models.py:1016
msgid "deleted"
msgstr ""
-#: order/models.py:964 order/models.py:1046 order/models.py:1068
-#: order/models.py:1164 order/models.py:1299
-#: templates/js/translated/order.js:2905
+#: order/models.py:1022 order/models.py:1104 order/models.py:1126
+#: order/models.py:1222 order/models.py:1357
+#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:965 order/models.py:1046
+#: order/models.py:1023 order/models.py:1104
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1542
-#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1856
-#: templates/js/translated/stock.js:2421
+#: templates/js/translated/order.js:885 templates/js/translated/order.js:1621
+#: templates/js/translated/part.js:899 templates/js/translated/stock.js:1846
+#: templates/js/translated/stock.js:2412
msgid "Purchase Order"
msgstr ""
-#: order/models.py:984
+#: order/models.py:1042
msgid "Supplier part"
msgstr ""
-#: order/models.py:991 order/templates/order/order_base.html:169
-#: templates/js/translated/order.js:1318 templates/js/translated/order.js:1906
+#: order/models.py:1049 order/templates/order/order_base.html:169
+#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:992
+#: order/models.py:1050
msgid "Number of items received"
msgstr ""
-#: order/models.py:999 part/templates/part/prices.html:179 stock/models.py:745
+#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1000
+#: order/models.py:1058
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1008
+#: order/models.py:1066
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1078 part/templates/part/part_pricing.html:112
+#: order/models.py:1136 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1079
+#: order/models.py:1137
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1084
+#: order/models.py:1142
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1171
+#: order/models.py:1229
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1178
+#: order/models.py:1236
msgid "Checked By"
msgstr ""
-#: order/models.py:1179
+#: order/models.py:1237
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1187
+#: order/models.py:1245
msgid "Shipment number"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1252
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1201
+#: order/models.py:1259
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1260
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1209
+#: order/models.py:1267
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1268
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1227
+#: order/models.py:1285
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1230
+#: order/models.py:1288
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1337 order/models.py:1339
+#: order/models.py:1395 order/models.py:1397
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1343
+#: order/models.py:1401
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1345
+#: order/models.py:1403
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1406
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1352
+#: order/models.py:1410
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1358 order/serializers.py:1008
+#: order/models.py:1416 order/serializers.py:1008
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1361
+#: order/models.py:1419
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1362
+#: order/models.py:1420
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1428
msgid "Line"
msgstr ""
-#: order/models.py:1378 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1379
+#: order/models.py:1437
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1391 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1392
+#: order/models.py:1450
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1395
+#: order/models.py:1453
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3842,7 +3830,12 @@ msgstr ""
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:235
+#: order/templates/order/order_base.html:187
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_base.html:243
msgid "Edit Purchase Order"
msgstr ""
@@ -3873,9 +3866,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:427
-#: templates/js/translated/build.js:579 templates/js/translated/build.js:1989
+#: templates/js/translated/build.js:579 templates/js/translated/build.js:1972
#: templates/js/translated/order.js:833 templates/js/translated/order.js:1265
-#: templates/js/translated/order.js:2524 templates/js/translated/stock.js:570
+#: templates/js/translated/order.js:2731 templates/js/translated/stock.js:570
#: templates/js/translated/stock.js:738
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -3939,7 +3932,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:235
msgid "Add Order Line"
msgstr ""
@@ -3962,7 +3955,7 @@ msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:250
+#: order/templates/order/sales_order_base.html:258
msgid "Complete Sales Order"
msgstr ""
@@ -3971,7 +3964,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2264
+#: templates/js/translated/order.js:2471
msgid "Customer Reference"
msgstr ""
@@ -3981,7 +3974,7 @@ msgstr ""
msgid "Completed Shipments"
msgstr ""
-#: order/templates/order/sales_order_base.html:222
+#: order/templates/order/sales_order_base.html:230
msgid "Edit Sales Order"
msgstr ""
@@ -3995,7 +3988,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1074 templates/js/translated/build.js:1897
+#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -4123,7 +4116,7 @@ msgid "Part Category"
msgstr ""
#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
#: users/models.py:38
msgid "Part Categories"
msgstr ""
@@ -4134,7 +4127,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
-#: templates/js/translated/part.js:1768 templates/js/translated/search.js:99
+#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
#: templates/navbar.html:24 users/models.py:39
msgid "Parts"
msgstr ""
@@ -4212,7 +4205,7 @@ msgstr ""
#: part/models.py:842 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
@@ -4326,7 +4319,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2462 templates/js/translated/part.js:1819
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
@@ -4458,7 +4451,7 @@ msgid "BOM quantity for this BOM item"
msgstr ""
#: part/models.py:2778 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:898 templates/js/translated/bom.js:992
+#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
@@ -4492,7 +4485,7 @@ msgid "BOM line checksum"
msgstr ""
#: part/models.py:2794 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1009
+#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
@@ -4503,7 +4496,7 @@ msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
#: part/models.py:2800 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1001
+#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
@@ -4519,35 +4512,35 @@ msgstr ""
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:3006
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:3028
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:3040
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3048
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:3059
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:3063
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:3063
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:3095
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4724,6 +4717,11 @@ msgstr ""
msgid "New Part"
msgstr ""
+#: part/templates/part/category.html:168 part/templates/part/detail.html:361
+#: part/templates/part/detail.html:392
+msgid "Options"
+msgstr ""
+
#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
@@ -4912,46 +4910,46 @@ msgstr ""
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:378
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:392
+#: part/templates/part/detail.html:394
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:628
+#: part/templates/part/detail.html:610
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:672
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:680
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:783
+#: part/templates/part/detail.html:765
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:916
+#: part/templates/part/detail.html:898
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:928
+#: part/templates/part/detail.html:910
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:940
+#: part/templates/part/detail.html:922
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1029
+#: part/templates/part/detail.html:1011
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -5094,8 +5092,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:508
-#: templates/js/translated/company.js:765
+#: templates/js/translated/company.js:623
+#: templates/js/translated/company.js:882
#: templates/js/translated/model_renderers.js:192
#: templates/js/translated/part.js:581 templates/js/translated/part.js:658
msgid "Inactive"
@@ -5111,7 +5109,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3336
+#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5126,7 +5124,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1030
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1009
msgid "Can Build"
msgstr ""
@@ -5184,7 +5182,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:984
+#: templates/js/translated/bom.js:963
msgid "No supplier pricing available"
msgstr ""
@@ -5304,7 +5302,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:158 templates/js/translated/bom.js:978
+#: part/templates/part/prices.html:158 templates/js/translated/bom.js:957
msgid "Supplier Cost"
msgstr ""
@@ -5543,7 +5541,7 @@ msgstr ""
msgid "Barcode associated with Stock Item"
msgstr ""
-#: plugin/base/label/label.py:39
+#: plugin/base/label/label.py:61
msgid "Label printing failed"
msgstr ""
@@ -5785,10 +5783,10 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:655 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
-#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1688
+#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
-#: templates/js/translated/order.js:115 templates/js/translated/order.js:3022
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:435
+#: templates/js/translated/order.js:115 templates/js/translated/order.js:3229
+#: templates/js/translated/order.js:3318 templates/js/translated/stock.js:435
msgid "Serial Number"
msgstr ""
@@ -5809,7 +5807,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1590 templates/js/translated/stock.js:2349
+#: templates/js/translated/order.js:1669 templates/js/translated/stock.js:2340
msgid "Date"
msgstr ""
@@ -5828,7 +5826,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:725
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2589
msgid "Serial"
msgstr ""
@@ -5948,7 +5946,7 @@ msgid "Destination Sales Order"
msgstr ""
#: stock/models.py:713 stock/templates/stock/item_base.html:429
-#: templates/js/translated/stock.js:1826
+#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
@@ -6228,11 +6226,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2742
+#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2733
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1465
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1455
msgid "Add Test Result"
msgstr ""
@@ -6390,7 +6388,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:394
-#: templates/js/translated/build.js:1710
+#: templates/js/translated/build.js:1693
msgid "No location set"
msgstr ""
@@ -6419,7 +6417,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:442
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1832
msgid "Last Updated"
msgstr ""
@@ -6503,8 +6501,8 @@ msgstr ""
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:164
-#: templates/js/translated/search.js:153 users/models.py:40
+#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
+#: templates/js/translated/search.js:238 users/models.py:40
msgid "Stock Locations"
msgstr ""
@@ -7348,8 +7346,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:621
-#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:594
-#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:595
+#: templates/js/translated/modals.js:689 templates/js/translated/modals.js:997
#: templates/js/translated/order.js:928 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -7621,14 +7619,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1446
+#: templates/js/translated/bom.js:1425
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1804
-#: templates/js/translated/build.js:2545 templates/js/translated/part.js:527
+#: templates/js/translated/bom.js:890 templates/js/translated/build.js:1787
+#: templates/js/translated/build.js:2650 templates/js/translated/part.js:527
#: templates/js/translated/part.js:530
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7663,67 +7661,67 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:235 templates/js/translated/modals.js:1067
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:236 templates/js/translated/modals.js:1068
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:197
+#: templates/js/translated/api.js:242
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:198
+#: templates/js/translated/api.js:243
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1076
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1077
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1078
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1081
+#: templates/js/translated/api.js:252 templates/js/translated/modals.js:1082
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1082
+#: templates/js/translated/api.js:253 templates/js/translated/modals.js:1083
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1086
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1087
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1087
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1088
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:217
+#: templates/js/translated/api.js:262
msgid "Error 405: Method Not Allowed"
msgstr ""
-#: templates/js/translated/api.js:218
+#: templates/js/translated/api.js:263
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1091
+#: templates/js/translated/api.js:267 templates/js/translated/modals.js:1092
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1092
+#: templates/js/translated/api.js:268 templates/js/translated/modals.js:1093
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:226
+#: templates/js/translated/api.js:271
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:227
+#: templates/js/translated/api.js:272
msgid "Error code"
msgstr ""
@@ -7784,7 +7782,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:182
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
msgid "Invalid server response"
msgstr ""
@@ -7866,7 +7864,7 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:709 templates/js/translated/tables.js:53
+#: templates/js/translated/order.js:709 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
@@ -7951,84 +7949,84 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: templates/js/translated/bom.js:696
+#: templates/js/translated/bom.js:697
msgid "Delete selected BOM items?"
msgstr ""
-#: templates/js/translated/bom.js:845
+#: templates/js/translated/bom.js:824
msgid "Load BOM for subassembly"
msgstr ""
-#: templates/js/translated/bom.js:855
+#: templates/js/translated/bom.js:834
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:859 templates/js/translated/build.js:1786
+#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1769
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1831
+#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:931 templates/js/translated/build.js:1835
+#: templates/js/translated/bom.js:910 templates/js/translated/build.js:1818
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:933 templates/js/translated/build.js:1837
+#: templates/js/translated/bom.js:912 templates/js/translated/build.js:1820
#: templates/js/translated/part.js:690
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1839
+#: templates/js/translated/bom.js:914 templates/js/translated/build.js:1822
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:949
+#: templates/js/translated/bom.js:928
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:964
+#: templates/js/translated/bom.js:943
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:971
+#: templates/js/translated/bom.js:950
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1020 templates/js/translated/bom.js:1111
+#: templates/js/translated/bom.js:999 templates/js/translated/bom.js:1090
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1082
+#: templates/js/translated/bom.js:1061
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1084
+#: templates/js/translated/bom.js:1063
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1086
+#: templates/js/translated/bom.js:1065
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1088 templates/js/translated/bom.js:1249
+#: templates/js/translated/bom.js:1067 templates/js/translated/bom.js:1228
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1090
+#: templates/js/translated/bom.js:1069
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1185 templates/js/translated/build.js:1632
+#: templates/js/translated/bom.js:1164 templates/js/translated/build.js:1615
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1429 templates/js/translated/build.js:1770
+#: templates/js/translated/bom.js:1408 templates/js/translated/build.js:1753
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1451
+#: templates/js/translated/bom.js:1430
msgid "Inherited from parent BOM"
msgstr ""
@@ -8150,262 +8148,270 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1138
+#: templates/js/translated/build.js:1133
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1202
msgid "Allocated Stock"
msgstr ""
-#: templates/js/translated/build.js:1214
+#: templates/js/translated/build.js:1209
msgid "No tracked BOM items for this build"
msgstr ""
-#: templates/js/translated/build.js:1236
+#: templates/js/translated/build.js:1231
msgid "Completed Tests"
msgstr ""
-#: templates/js/translated/build.js:1241
+#: templates/js/translated/build.js:1236
msgid "No required tests for this build"
msgstr ""
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2556
-#: templates/js/translated/order.js:3059
+#: templates/js/translated/build.js:1710 templates/js/translated/build.js:2661
+#: templates/js/translated/order.js:3266
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1729 templates/js/translated/build.js:2557
-#: templates/js/translated/order.js:3060
+#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2662
+#: templates/js/translated/order.js:3267
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1747
+#: templates/js/translated/build.js:1730
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1757
+#: templates/js/translated/build.js:1740
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1782
+#: templates/js/translated/build.js:1765
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1799
+#: templates/js/translated/build.js:1782
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1808
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1827
+#: templates/js/translated/build.js:1810
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1856 templates/js/translated/build.js:2101
-#: templates/js/translated/build.js:2552 templates/js/translated/order.js:3346
+#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1904 templates/js/translated/order.js:3426
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1908 templates/stock_table.html:50
+#: templates/js/translated/build.js:1891 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1911 templates/js/translated/order.js:3419
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1950 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:756 templates/js/translated/order.js:2586
+#: templates/js/translated/build.js:1933 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:756 templates/js/translated/order.js:2793
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1951 templates/js/translated/order.js:2587
+#: templates/js/translated/build.js:1934 templates/js/translated/order.js:2794
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2000 templates/js/translated/order.js:2535
+#: templates/js/translated/build.js:1983 templates/js/translated/order.js:2742
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:2074
+#: templates/js/translated/build.js:2057
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:2075
+#: templates/js/translated/build.js:2058
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2089 templates/js/translated/order.js:2601
+#: templates/js/translated/build.js:2072 templates/js/translated/order.js:2808
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:2117
+#: templates/js/translated/build.js:2100
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2128 templates/js/translated/order.js:2698
+#: templates/js/translated/build.js:2111 templates/js/translated/order.js:2905
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2775
+#: templates/js/translated/build.js:2183 templates/js/translated/order.js:2982
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:2297
+#: templates/js/translated/build.js:2280
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:2298
+#: templates/js/translated/build.js:2281
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:2300
+#: templates/js/translated/build.js:2283
msgid "If a location is specifed, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:2301
+#: templates/js/translated/build.js:2284
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:2302
+#: templates/js/translated/build.js:2285
msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
msgstr ""
-#: templates/js/translated/build.js:2323
+#: templates/js/translated/build.js:2306
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2363
+#: templates/js/translated/build.js:2413
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2380 templates/js/translated/part.js:1314
-#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1629
-#: templates/js/translated/stock.js:2286
+#: templates/js/translated/build.js:2448 templates/js/translated/part.js:1314
+#: templates/js/translated/part.js:1729 templates/js/translated/stock.js:1619
+#: templates/js/translated/stock.js:2277
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2400
+#: templates/js/translated/build.js:2468
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2428
+#: templates/js/translated/build.js:2496
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2464 templates/js/translated/stock.js:2528
+#: templates/js/translated/build.js:2532 templates/js/translated/stock.js:2519
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2476
+#: templates/js/translated/build.js:2544
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2533
+#: templates/js/translated/build.js:2638
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:169
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:108
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:506
+#: templates/js/translated/company.js:157 templates/js/translated/order.js:506
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:193
+#: templates/js/translated/company.js:185
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:208
+#: templates/js/translated/company.js:200
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:218
-msgid "Delete Supplier Part"
+#: templates/js/translated/company.js:248
+msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:286
+#: templates/js/translated/company.js:263
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:342
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:363
+#: templates/js/translated/company.js:419
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:372
+#: templates/js/translated/company.js:428
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:387
+#: templates/js/translated/company.js:443
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:406
-msgid "The following manufacturer parts will be deleted"
+#: templates/js/translated/company.js:482
+msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:423
+#: templates/js/translated/company.js:496
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:480
+#: templates/js/translated/company.js:535
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:548
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:595
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:565
+#: templates/js/translated/company.js:615
+#: templates/js/translated/company.js:874 templates/js/translated/part.js:565
#: templates/js/translated/part.js:650
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:569
+#: templates/js/translated/company.js:619
+#: templates/js/translated/company.js:878 templates/js/translated/part.js:569
#: templates/js/translated/part.js:654
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:757
+#: templates/js/translated/company.js:747 templates/js/translated/part.js:757
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:799
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:799
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:800
+#: templates/js/translated/company.js:785 templates/js/translated/part.js:800
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:817
+#: templates/js/translated/company.js:804 templates/js/translated/part.js:817
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:829
+#: templates/js/translated/company.js:815 templates/js/translated/part.js:829
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:737
+#: templates/js/translated/company.js:854
msgid "No supplier parts found"
msgstr ""
@@ -8443,61 +8449,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:358 templates/js/translated/forms.js:373
-#: templates/js/translated/forms.js:387 templates/js/translated/forms.js:401
+#: templates/js/translated/forms.js:353 templates/js/translated/forms.js:368
+#: templates/js/translated/forms.js:382 templates/js/translated/forms.js:396
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:355
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:375
+#: templates/js/translated/forms.js:370
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:389
+#: templates/js/translated/forms.js:384
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:403
+#: templates/js/translated/forms.js:398
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:646
+#: templates/js/translated/forms.js:656
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:746
+#: templates/js/translated/forms.js:756
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1238 templates/modals.html:19
+#: templates/js/translated/forms.js:1248 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1671
+#: templates/js/translated/forms.js:1681
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1886 templates/search.html:29
+#: templates/js/translated/forms.js:1896 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2139
+#: templates/js/translated/forms.js:2149
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2605
+#: templates/js/translated/forms.js:2615
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2617
+#: templates/js/translated/forms.js:2627
msgid "Select Columns"
msgstr ""
@@ -8571,62 +8577,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:81 templates/js/translated/modals.js:141
-#: templates/js/translated/modals.js:620
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:621
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:140
-#: templates/js/translated/modals.js:687 templates/js/translated/modals.js:995
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:688 templates/js/translated/modals.js:996
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:139
+#: templates/js/translated/modals.js:140
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:402
+#: templates/js/translated/modals.js:403
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:561
+#: templates/js/translated/modals.js:562
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:619
+#: templates/js/translated/modals.js:620
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:676
+#: templates/js/translated/modals.js:677
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:947
+#: templates/js/translated/modals.js:948
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:959
+#: templates/js/translated/modals.js:960
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1056
+#: templates/js/translated/modals.js:1057
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1071
+#: templates/js/translated/modals.js:1072
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1072
+#: templates/js/translated/modals.js:1073
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1095
+#: templates/js/translated/modals.js:1096
msgid "Error requesting form data"
msgstr ""
@@ -8824,7 +8830,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2089
+#: templates/js/translated/order.js:1225 templates/js/translated/stock.js:2080
msgid "Stock Status"
msgstr ""
@@ -8848,217 +8854,217 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1531 templates/js/translated/part.js:870
+#: templates/js/translated/order.js:1602 templates/js/translated/part.js:870
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1556 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:1635 templates/js/translated/order.js:2448
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1606 templates/js/translated/order.js:2306
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:1685 templates/js/translated/order.js:2513
+#: templates/js/translated/order.js:2643
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1680 templates/js/translated/order.js:3478
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1697 templates/js/translated/order.js:3500
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1710 templates/js/translated/order.js:3511
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1753
+#: templates/js/translated/order.js:1856
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1780 templates/js/translated/order.js:3235
+#: templates/js/translated/order.js:1883 templates/js/translated/order.js:3442
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1834 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:3260 templates/js/translated/order.js:3745
+#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1849 templates/js/translated/order.js:2052
-#: templates/js/translated/order.js:3276 templates/js/translated/order.js:3761
+#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1890 templates/js/translated/order.js:3318
+#: templates/js/translated/order.js:1993 templates/js/translated/order.js:3525
#: templates/js/translated/part.js:979
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1949 templates/js/translated/part.js:1025
+#: templates/js/translated/order.js:2052 templates/js/translated/part.js:1025
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3432
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:1954 templates/js/translated/order.js:3433
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1955 templates/js/translated/order.js:3437
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2101 templates/js/translated/order.js:3810
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2102 templates/js/translated/order.js:3811
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2103 templates/js/translated/order.js:3812
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2133 templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2154 templates/js/translated/order.js:3863
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2165 templates/js/translated/order.js:3874
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2176
+#: templates/js/translated/order.js:2279
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2217
+#: templates/js/translated/order.js:2392
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:2462
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2342
+#: templates/js/translated/order.js:2549
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2345
+#: templates/js/translated/order.js:2552
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2350
+#: templates/js/translated/order.js:2557
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2370
+#: templates/js/translated/order.js:2577
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2387
+#: templates/js/translated/order.js:2594
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2421
+#: templates/js/translated/order.js:2628
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2431
+#: templates/js/translated/order.js:2638
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2455
+#: templates/js/translated/order.js:2662
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2461
+#: templates/js/translated/order.js:2668
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2465
+#: templates/js/translated/order.js:2672
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:2634
+#: templates/js/translated/order.js:2841
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:2685
+#: templates/js/translated/order.js:2892
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:2686
+#: templates/js/translated/order.js:2893
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:2894
+#: templates/js/translated/order.js:3101
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2975
+#: templates/js/translated/order.js:3182
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2992
+#: templates/js/translated/order.js:3199
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2993
+#: templates/js/translated/order.js:3200
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3036 templates/js/translated/order.js:3125
-#: templates/js/translated/stock.js:1545
+#: templates/js/translated/order.js:3243 templates/js/translated/order.js:3332
+#: templates/js/translated/stock.js:1535
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3044 templates/js/translated/order.js:3134
+#: templates/js/translated/order.js:3251 templates/js/translated/order.js:3341
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3416
+#: templates/js/translated/order.js:3623
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3422
+#: templates/js/translated/order.js:3629
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3429 templates/js/translated/order.js:3627
+#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3441
+#: templates/js/translated/order.js:3648
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3444
+#: templates/js/translated/order.js:3651
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3526
+#: templates/js/translated/order.js:3733
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3635
+#: templates/js/translated/order.js:3842
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3649
+#: templates/js/translated/order.js:3856
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:3885
+#: templates/js/translated/order.js:4092
msgid "No matching lines"
msgstr ""
@@ -9240,7 +9246,7 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1504 templates/js/translated/part.js:1664
-#: templates/js/translated/stock.js:2247
+#: templates/js/translated/stock.js:2238
msgid "Display as list"
msgstr ""
@@ -9248,7 +9254,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2266
+#: templates/js/translated/part.js:1683 templates/js/translated/stock.js:2257
msgid "Display as tree"
msgstr ""
@@ -9256,7 +9262,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2310
+#: templates/js/translated/part.js:1761 templates/js/translated/stock.js:2301
msgid "Path"
msgstr ""
@@ -9264,12 +9270,12 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1243
+#: templates/js/translated/part.js:1856 templates/js/translated/stock.js:1233
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1244
-#: templates/js/translated/stock.js:1503
+#: templates/js/translated/part.js:1857 templates/js/translated/stock.js:1234
+#: templates/js/translated/stock.js:1493
msgid "Delete test result"
msgstr ""
@@ -9390,11 +9396,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:307
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:310
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9554,204 +9560,204 @@ msgstr ""
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1172
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1174
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1189
+#: templates/js/translated/stock.js:1179
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1236
+#: templates/js/translated/stock.js:1226
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1239
+#: templates/js/translated/stock.js:1229
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1255
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1321
+#: templates/js/translated/stock.js:1311
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1486
+#: templates/js/translated/stock.js:1476
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1508
+#: templates/js/translated/stock.js:1498
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1537
+#: templates/js/translated/stock.js:1527
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1541
+#: templates/js/translated/stock.js:1531
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1549
+#: templates/js/translated/stock.js:1539
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1545
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1722
+#: templates/js/translated/stock.js:1712
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1717
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1730
+#: templates/js/translated/stock.js:1720
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1733
+#: templates/js/translated/stock.js:1723
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1725
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1737
+#: templates/js/translated/stock.js:1727
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1730
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1734
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1746
+#: templates/js/translated/stock.js:1736
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1753
+#: templates/js/translated/stock.js:1743
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1755
+#: templates/js/translated/stock.js:1745
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1757
+#: templates/js/translated/stock.js:1747
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1761
+#: templates/js/translated/stock.js:1751
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1802
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1894
+#: templates/js/translated/stock.js:1884
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1932
+#: templates/js/translated/stock.js:1922
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2104
+#: templates/js/translated/stock.js:2095
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2118
+#: templates/js/translated/stock.js:2109
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2119
+#: templates/js/translated/stock.js:2110
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2374
+#: templates/js/translated/stock.js:2365
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2390
+#: templates/js/translated/stock.js:2381
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2412
+#: templates/js/translated/stock.js:2403
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2431
+#: templates/js/translated/stock.js:2422
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2450
+#: templates/js/translated/stock.js:2441
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2468
+#: templates/js/translated/stock.js:2459
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2491
+#: templates/js/translated/stock.js:2482
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2499
+#: templates/js/translated/stock.js:2490
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2575
+#: templates/js/translated/stock.js:2566
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2662
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2653
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2675
+#: templates/js/translated/stock.js:2666
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2696
+#: templates/js/translated/stock.js:2687
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2697
+#: templates/js/translated/stock.js:2688
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2690
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2700
+#: templates/js/translated/stock.js:2691
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2701
+#: templates/js/translated/stock.js:2692
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2702
+#: templates/js/translated/stock.js:2693
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2715
+#: templates/js/translated/stock.js:2706
msgid "Select part to install"
msgstr ""
@@ -9983,69 +9989,81 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:50
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
msgid "Export Table Data"
msgstr ""
-#: templates/js/translated/tables.js:54
+#: templates/js/translated/tables.js:146
msgid "Select File Format"
msgstr ""
-#: templates/js/translated/tables.js:433
+#: templates/js/translated/tables.js:525
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:436
+#: templates/js/translated/tables.js:528
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:441
+#: templates/js/translated/tables.js:533
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:443
+#: templates/js/translated/tables.js:535
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:447 templates/navbar.html:102
+#: templates/js/translated/tables.js:539 templates/navbar.html:102
#: templates/search.html:8 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:450
+#: templates/js/translated/tables.js:542
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:453
+#: templates/js/translated/tables.js:545
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:456
+#: templates/js/translated/tables.js:548
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:459
+#: templates/js/translated/tables.js:551
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:462
+#: templates/js/translated/tables.js:554
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:465
+#: templates/js/translated/tables.js:557
msgid "All"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 7e4d2e68ce..725d288a34 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "Конечная точка API не обнаружена"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Введите дату"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Подтвердить"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Подтвердите удаление"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Подтвердите удаление элемента"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Введите пароль"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Введите новый пароль"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Подтвердить пароль"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Подтвердите новый пароль"
@@ -70,72 +70,73 @@ msgstr "Email (еще раз)"
msgid "Email address confirmation"
msgstr "Подтверждение адреса электронной почты"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Вы должны вводить один и тот же адрес электронной почты."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Повторяющийся серийный номер: {sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Недопустимая/несуществующая группа {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Файл не найден"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Вложения"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Выберите файл для вложения"
msgid "Link"
msgstr "Ссылка"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Комментарий"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Пользователь"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Имя файла не должно быть пустым"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Неверная директория вложений"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Имя файла содержит запрещенные символы '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Отсутствует расширение для имени файла"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Вложение с таким именем файла уже существует"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Ошибка переименования файла"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Неверный выбор"
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Название"
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Имя файла"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Неверное значение"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Файл данных"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Выберите файл данных для загрузки"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Неподдерживаемый тип файла"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Файл слишком большой"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Столбцы в файле не найдены"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Строки данных в файле не найдены"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Строки данных в файле не найдены"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Повторяющийся столбец: '{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Венгерский"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Китайский"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Проверка фонового работника не удалась"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Сервер электронной почты не настроен"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "Ошибка проверки состояния системы InvenTree"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Ожидаемый"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Размещены"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Готово"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Отменено"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Потерян"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Возвращено"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Доставлено"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "Да"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Требует внимания"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Поврежденный"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Разрушено"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Отклоненный"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Получено по заказу на покупку"
msgid "Production"
msgstr "Продукция"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Неверный код валюты"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Неверный символ в названии части"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN должен совпадать с регулярным выражением {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Ссылка должна соответствовать шаблону {pattern}"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Недопустимый символ в имени ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Значение перегрузки не должно быть отрицательным"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Перегрузка не может превысить 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Удалить элемент"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Установите флажок для подтверждения удаления элемента"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Редактировать информацию о пользователе"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Установить пароль"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Пароли должны совпадать"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Информация о системе"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "Неверный выбор для родительской сборки"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Отсылка"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Краткое описание сборки"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Родительская сборка"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr "Детали"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Выберите часть для сборки"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Отсылка на заказ"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Расположение источника"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Место назначения"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Выберите место хранения завершенных элементов"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Количество сборки"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Количество складских предметов для сборки"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Завершенные предметы"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Количество предметов на складе, которые были завершены"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Статус сборки"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Код статуса сборки"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Код партии"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Код партии для этого вывода сборки"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Дата создания"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Целевая дата завершения"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Дата завершения"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Выдал/ла"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Пользователь, выпустивший этот заказ на сборку"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Пользователь, ответственный за этот заказ сборки"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Заметки"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Дополнительные заметки к сборке"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Вывод сборки не указан"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Вывод сборки уже завершен"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "Вывод сборки не совпадает с порядком сборки"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Количество должно быть 1 для сериализованных запасов"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr "Выбранная единица хранения не найдена в BOM"
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Сборка"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr "Предметы на складе"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Исходный складской предмет"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Исходный складской предмет"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Исходный складской предмет"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Исходный складской предмет"
msgid "Quantity"
msgstr "Количество"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Серийные номера"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Введите серийные номера для результатов сборки"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr "Расположение"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr "Статус"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr "BOM Компонент"
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr "Компонент должен быть в наличии"
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Превышено доступное количество ({q})"
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr "Для заказа сборки необходим остаток"
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Завершённые"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Назначение"
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Удалить заказ на сборку"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Неподдерживаемый формат файла: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Ошибка чтения файла (неверная кодировка)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Ошибка чтения файла (неверный формат)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Ошибка чтения файла (неверный размер)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Ошибка чтения файла (данные могут быть повреждены)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Файл"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Выберите файл для загрузки"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "Выберите {name} файл для загрузки"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr "Требуется перезапуск"
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Название компании"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "Внутреннее название компании"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "Базовая ссылка"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr "Базовая ссылка для экземпляра сервера"
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Валюта по умолчанию"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Валюта по умолчанию"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "Скачать по ссылке"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Разрешить повторяющиеся IPN"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "Разрешить редактирование IPN"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Шаблон"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "По умолчанию детали являются шаблонами"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Сборка"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Компонент"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Можно продавать"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Отслеживание"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "По умолчанию детали являются отслеживаемыми"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Показывать цену в формах"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr "Показывать цену в BOM"
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr "Показывать историю цены"
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "Показывать связанные детали"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Режим отладки"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr "Необходимо указать EMail"
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr "Показывать детали, на которые включены уведомления"
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr "Показывать детали, на которые включены уведомления, на главной странице"
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr "Показывать категории, на которые включены уведомления"
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr "Показывать категории, на которые включены уведомления, на главной странице"
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Показывать последние детали"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Показывать последние детали на главной странице"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr "Показывать непроверенные BOMы"
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr "Показывать BOMы, ожидающие проверки, на главной странице"
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr "Показывать изменившиеся складские запасы"
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице"
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr "Показывать низкие складские запасы"
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице"
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr "Показывать закончившиеся детали"
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr "Показывать закончившиеся на складе единицы хранения на главной странице"
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr "Показывать требуемые детали"
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr "Показывать требуемые для сборки единицы хранения на главной странице"
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr "Показывать просрочку"
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице"
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr "Показывать залежалые"
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr "Показывать залежалые единицы хранения на главной странице"
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr "Показывать незавершённые сборки"
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr "Показывать незавершённые сборки на главной странице"
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr "Показывать просроченные сборки"
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr "Показывать просроченные сборки на главной странице"
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Цена"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Загрузить файл"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "Детали импортированы"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr "Предыдущий шаг"
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "Ссылка"
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "Ссылка на изображение"
@@ -2597,7 +2615,7 @@ msgstr "Контактное лицо"
msgid "Link to external company information"
msgstr "Ссылка на описание компании"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Изображение"
@@ -2625,9 +2643,9 @@ msgstr "производитель"
msgid "Does this company manufacture parts?"
msgstr "Является ли компания производителем деталей?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Валюта"
@@ -2635,16 +2653,16 @@ msgstr "Валюта"
msgid "Default currency used for this company"
msgstr "Для этой компании используется валюта по умолчанию"
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Базовая деталь"
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "Выберите деталь"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr "Выберите деталь"
msgid "Manufacturer"
msgstr "Производитель"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Выберите производителя"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Выберите производителя"
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Код производителя"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr "Ссылка на сайт производителя"
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "Деталь производителя"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr "Наименование параметра"
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Значение"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "Значение параметра"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "Ед.изм"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr "Единицы измерения"
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr "Поставщик"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Выберите поставщика"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr "Код поставщика"
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr "Ссылка на сайт поставщика"
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Заметка"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "Упаковка"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr "Загрузить новое изображение"
msgid "Download image from URL"
msgstr "Скачать изображение по ссылке"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "Загрузить изображение"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Детали поставщиков"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "Удалить детали"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "Детали производителей"
@@ -2927,8 +2946,8 @@ msgstr "Склад поставщика"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Заказы на закупку"
@@ -2950,8 +2969,8 @@ msgstr "Новый заказ на закупку"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "Заказы на продажу"
@@ -2978,7 +2997,7 @@ msgstr "Заметки о компании"
msgid "Supplier List"
msgstr "Список поставщиков"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "Удалить деталь поставщика"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "Удалить"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Детали на складе"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Новый поставщик"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Новый производитель"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Покупатели"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Новый покупатель"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Компании"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Новая компания"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "Скачать изображение"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "Ширина [мм]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Высота [мм]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Фильтры"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr "Компания, в которой детали заказываются"
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr "Компания, которой детали продаются"
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr "Заказ на закупку"
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "Закупочная цена"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr "Цена продажи"
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr "Курс покупки валюты"
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество"
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr "Курс продажи валюты"
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr "Действия"
@@ -3978,201 +3998,202 @@ msgstr "Действия"
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr "Заказ на продажу не найден"
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr "Цена не найдена"
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Место хранения по умолчанию"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr "Доступный запас"
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr "Выберите категорию"
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Место хранения по умолчанию для деталей этой категории"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr "Ключевые слова по умолчанию"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr "Ключевые слова по умолчанию для деталей этой категории"
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Категория детали"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Детали"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "Наименование детали"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr "Шаблон"
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr "Эта деталь является шаблоном для других деталей?"
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr "Эта деталь является разновидностью другой детали?"
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr "Разновидность"
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Описание детали"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "Ключевые слова"
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr "Ключевые слова для улучшения видимости в результатах поиска"
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr "Ключевые слова для улучшения видимости
msgid "Category"
msgstr "Категория"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr "Категория"
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr "Внутренний код детали"
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr "Версия детали"
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Версия"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr "Где обычно хранится эта деталь?"
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "Минимальный запас"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr "Минимально допустимый складской запас"
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr "Может ли эта деталь быть создана из других деталей?"
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr "Может ли эта деталь использоваться для создания других деталей?"
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?"
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?"
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr "Может ли эта деталь быть продана покупателям?"
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr "Эта деталь актуальна?"
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Эта деталь виртуальная, как программный продукт или лицензия?"
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr "Заметки о детали (поддерживается разметка Markdown)"
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr "Родительская деталь"
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr "Шаблон параметра"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr "Артикул или наименование детали"
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "Артикул"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr "Наименование детали"
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr "IPN"
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr "Значение IPN"
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr "Разрешить разновидности"
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr "Часть 1"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr "Часть 2"
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr "Валюта покупки этой единицы хранения"
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr "Подходящая деталь не найдена"
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr "Эта деталь является разновидностью %(link)s"
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "На складе"
@@ -5384,20 +5405,20 @@ msgstr "Создать новую разновидность детали"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Создать новую разновидность из шаблона '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr "Неизвестная база данных"
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr "Укажите категорию"
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr "Изображение детали не найдено"
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr "Деталь была удалена"
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr "Удалить категорию"
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr "Категория удалена"
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Действие не указано"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "Должен быть предоставлен параметр штрихкода"
@@ -5494,31 +5515,31 @@ msgstr "Не найдено совпадений для данных штрих-
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Необходимо предоставить параметр инвентаря"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Не найдено совпадающих элементов инвентаря"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr "Штрих-код уже совпадает с Компонентом"
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr "Включить уведомления по электронной почте"
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr "Разрешить отправку уведомлений о событиях по электронной почте"
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr "Автор не найден"
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr "Дата не найдена"
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr "Исходная ссылка"
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr "Название шаблона"
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr "Файл шаблона отчёта"
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr "Родительская единица хранения"
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr "Базовая деталь"
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Место хранения"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr "Код партии для этой единицы хранения"
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr "Исходная сборка"
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr "Удалить при обнулении"
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr "Удалить эту единицу хранения при обнулении складского запаса"
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr "Заметки о единице хранения"
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr "Деталь не является отслеживаемой"
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Серийные номера уже существуют"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr "Выбранная деталь отсутствует в спецификации"
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr "Выбранная компания не является покупателем"
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr "Места хранения"
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Места хранения"
@@ -6535,7 +6556,7 @@ msgstr "Места хранения"
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr "Необработанная ошибка"
msgid "Error code"
msgstr "Код ошибки"
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr "Вложение не найдено"
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr "Общая стоимость"
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr "Выберите заказ на продажу"
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Права доступа"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "Права доступа"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Вид"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Разрешение на просмотр элементов"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Разрешение на добавление элементов"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Разрешение на редактирование элементов"
-#: users/models.py:220
+#: users/models.py:219
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 20434e424a..f3e9f0349f 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API-slutpunkt hittades inte"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Ange datum"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Bekräfta"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Bekräfta borttagning"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Bekräfta borttagning av artikel"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Ange lösenord"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Ange nytt lösenord"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Bekräfta lösenord"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Bekräfta nytt lösenord"
@@ -70,72 +70,73 @@ msgstr ""
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Tom serienummersträng"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ogiltig grupp: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Inga serienummer hittades"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Bilaga"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Välj fil att bifoga"
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Användare"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "uppladdningsdatum"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Filnamnet får inte vara tomt"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Ogiltig katalog för bilaga"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnamnet innehåller ogiltiga tecken '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Filnamn saknar ändelse"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Det finns redan en bilaga med detta filnamn"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Fel vid namnbyte av fil"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Ogiltigt val"
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Namn"
msgid "Description"
msgstr "Beskrivning"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Beskrivning (valfritt)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "överordnad"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Filnamn"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Kinesiska"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Kontroll av bakgrundsarbetare misslyckades"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "Backend för e-post är inte konfigurerad"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InvenTree systemhälsokontroll misslyckades"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Väntar"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Placerad"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Slutför"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "Avbruten"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Förlorad"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "Återlämnad"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Skickad"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Skadad"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Förstörd"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Avvisad"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "Ingen åtgärd specificerad"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Ingen matchande åtgärd hittades"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 03f58867ec..362e1b00a9 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:43\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr ""
@@ -70,72 +70,73 @@ msgstr ""
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr ""
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr ""
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr ""
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 c5f93f3694..dfcef31f78 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "API uç noktası bulunamadı"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "Tarih giriniz"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "Onay"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "Silmeyi Onayla"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "Silmeyi onayla"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "Şifrenizi girin"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "Lütfen Yeni Parolayı Girin"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Parolayı doğrulayın"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Yeni parolayı doğrulayın"
@@ -70,72 +70,73 @@ msgstr "E-posta (tekrar)"
msgid "Email address confirmation"
msgstr "E-posta adresi onayı"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "Her seferind eaynı e-posta adresini yazmalısınız."
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Tekrarlanan seri no:{sn}"
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Geçersiz grup: {group}"
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "Eksik dosya"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr "Bozuk dış bağlantı"
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "Ek"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "Eklenecek dosyayı seç"
msgid "Link"
msgstr "Bağlantı"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Yorum"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Kullanıcı"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Dosya adı boş olamaz"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "Ek dosya yolu geçersiz"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dosya adı geçersiz karakterler içeriyor'{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "Dosya uzantısı yok"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "Aynı isimli başka bir dosya zaten var"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "Dosya adı değiştirilirken hata"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "Geçersiz seçim"
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "Adı"
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Dosya adı"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr "Geçersiz değer"
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr "Veri Dosyası"
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr "Yüklemek istediğiniz dosyayı seçin"
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr "Desteklenmeyen dsoya tipi"
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr "Dosya boyutu çok büyük"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr "Dosyada kolon bulunamadı"
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr "Dosyada satır bulunamadı"
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr "Dosyada satır bulunamadı"
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr "Dosyada uygun kolon bulunamadı"
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Gerekli kolon ismi eksik:'{name}'"
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Tekrarlanan kolon ismi:'{col}'"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr "İspanyolca(Meksika)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr "Macarca"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "Vietnamca"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "Çince"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "Arka plan çalışanı kontrolü başarısız oldu"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "E-posta arka ucu yapılandırılmadı"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InvenTree sistem sağlık kontrolü başarısız"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "Bekliyor"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "Sipariş verildi"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Tamamlandı"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "İptal edildi"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "Kayıp"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "İade"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "Sevk edildi"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr "TAMAM"
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "Dikkat gerekli"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "Hasarlı"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "Kullanılamaz durumda"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr "Reddedildi"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "Satın alma emri karşılığında alındı"
msgid "Production"
msgstr "Üretim"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "Geçerli bir para birimi kodu değil"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "Parça adında geçersiz karakter"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN regex kalıbıyla eşleşmelidir {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "({x}) adında geçersiz karakter"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "Fazlalık değeri negatif olmamalıdır"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "Fazlalık %100'ü geçmemelidir"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "Ögeyi Sil"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "Öge silme işlemini onaylamak için kutuyu işaretleyin"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "Kullanıcı Bilgisini Düzenle"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Şifre Belirle"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "Parola alanları eşleşmelidir"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Sistem Bilgisi"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "Referans"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
msgid "Part"
msgstr "Parça"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir"
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr "Yapım işi için tahsis edilen parçalar"
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "Kaynak stok kalemi"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "Kaynak stok kalemi"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "Kaynak stok kalemi"
msgid "Quantity"
msgstr "Miktar"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "Seri Numaraları"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "Yapım işi çıktısı için seri numaraları girin"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr "Konum"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr "Durum"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "Gerekli stok tamamen tahsis edilemedi"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr "Gerekli yapım işi miktarı tamamlanmadı"
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Tamamlandı"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr "Hedef"
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "Yapım İşi Emrini Sil"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "Desteklenmeyen dosya formatı: {ext.upper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr "Dosya okurken hata (geçersiz biçim)"
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr "Dosya okurken hata (geçersiz biçim)"
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr "Dosya okurken hata (hatalı ölçüler)"
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr "Dosya okurken hata (veri bozulmuş olabilir)"
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr "Dosya"
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr "Yüklenecek dosyayı seç"
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr "{name.title()} Dosya"
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr "Anahtar dizesi benzersiz olmalı"
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "Şirket adı"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr "Ana URL"
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr "Varsayılan Para Birimi"
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr "Varsayılan para birimi"
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr "URL'den indir"
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr "Barkod Desteği"
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "Barkod tarayıcı desteğini etkinleştir"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr "DPN Regex"
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)"
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr "Yinelenen DPN'ye İzin Ver"
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver"
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr "DPN Düzenlemeye İzin Ver"
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr "Kategori Paremetre Sablonu Kopyala"
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "Şablon"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "Montaj"
-#: common/models.py:905
+#: common/models.py:828
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:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "Bileşen"
-#: common/models.py:912
+#: common/models.py:835
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:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "Satın Alınabilir"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "Satılabilir"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "Takip Edilebilir"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Sanal"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "Formlarda Fiyat Göster"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "İlgili parçaları göster"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "Hata Ayıklama Modu"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "Sayfa Boyutu"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "PDF raporlar için varsayılan sayfa boyutu"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "Test Raporları"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "günler"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr "Aktif"
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Dosya Yükle"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Alanları Eşleştir"
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "Resim"
@@ -2625,9 +2643,9 @@ msgstr "üretici mi"
msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "Para birimi"
@@ -2635,16 +2653,16 @@ msgstr "Para birimi"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Temel Parça"
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "Parça seçin"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr "Parça seçin"
msgid "Manufacturer"
msgstr "Üretici"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "Üretici seçin"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "Üretici seçin"
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr "Parametre adı"
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "Değer"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "Not"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "Paketleme"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr "çoklu"
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "Tedarikçi Parçaları"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "Parçaları Sil"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr "Tedarikçi Stoku"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "Satın Alma Emirleri"
@@ -2950,8 +2969,8 @@ msgstr "Yeni Satın Alma Emri"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "Satış Emirleri"
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "Stok Kalemleri"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "Yeni Tedarikçi"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "Yeni Üretici"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "Müşteriler"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "Yeni Müşteri"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "Şirketler"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "Yeni Şirket"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "Resmi İndirin"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Geçersiz yanıt: {code}"
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr "Etiket adı"
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr "Etiket tanımı"
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr "Etiket"
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr "Etiket şablon listesi"
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "Etkin"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr "Etiket sablonu etkinleştirildi"
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "Genişlik [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr "Etiket genişliği mm olarak belirtilmeli"
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "Yükseklik [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr "Etiket yüksekliği mm olarak belirtilmeli"
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr "Dosya Adı Deseni"
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr "Etiket dosya adları oluşturma için desen"
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "Filtreler"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr "Sipariş açıklaması"
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr "Oluşturan"
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr "Sipariş notları"
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr "İşlemler"
@@ -3978,201 +3998,202 @@ msgstr "İşlemler"
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "Varsayılan Konum"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr "Parametre şablonunu tüm kategorilere ekle"
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Parçalar"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:816
+#: part/models.py:756
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:817
+#: part/models.py:757
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "Parça açıklaması"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr "DPN"
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "Minimum Stok"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:953
+#: part/models.py:891
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:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
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:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
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:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2801
+#: part/models.py:2584
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:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr "Bu parça %(link)s parçasının bir çeşididir"
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr "Yeni parça çeşidi oluştur"
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr "Hiçbiri"
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "İşlem belirtilmedi"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "Barcode_data parametresini sağlamalıdır"
@@ -5494,31 +5515,31 @@ msgstr "Barkod verisi için eşleşme bulunamadı"
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "Stok kalemi parametresi sağlamalıdır"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "Eşleşen stok kalemi bulunamadı"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr "Şablon için geçerli bir nesne sağlanmadı"
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr "Şablon adı"
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr "Rapor şablon dosyası"
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr "Rapor şablon tanımı"
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr "Revizyon numarası raporla (otomatik artış)"
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr "Rapor şablonu etkin"
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Stok kalemi sorgu filtreleri (anahter=değer [key=value] olarak virgülle ayrılmış liste)"
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr "Seri No"
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr "Bu stok kalemi için tedarikçi parçası seçin"
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr "İşlem notu ekle (isteğe bağlı)"
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr "Alt konumlar"
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "Stok Konumları"
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -6560,55 +6581,55 @@ msgstr "Bu işlem kolayca geri alınamaz"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr ""
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr "Dosya Ekle"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "Ek Düzenle"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "Eki Sil"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr "Ürünler"
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr "Seri Numaralarını Tahsis Et"
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr "Kullanıcılar"
msgid "Select which users are assigned to this group"
msgstr "Bu gruba atanacak kullanıcıyı seçin"
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr "Aşağıdaki kullanıcılar birden çok grubun üyesi:"
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "Kullanıcı bilgisi"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "Yetkiler"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "Önemli tarihler"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "İzinleri ayarla"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "Grup"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "Görünüm"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "Parçayı görüntüleme izni"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "Parça ekleme izni"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "Değiştir"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "Parçaları düzenleme izni"
-#: users/models.py:220
+#: users/models.py:219
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 c128491d9a..bba20ac053 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "Xác nhận mật khẩu"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "Xác nhận mật khẩu mới"
@@ -70,72 +70,73 @@ msgstr ""
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "Bình luận"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "Người dùng"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "Ngày tải lên"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "Tên tập tin không được để trống"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr ""
msgid "Description"
msgstr "Mô tả"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "Mô tả (tùy chọn)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "Tên tập tin"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr ""
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr ""
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "Thông tin hệ thống"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "Tạo đơn hàng"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "Tạo đơn hàng"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr ""
msgid "Part"
msgstr "Nguyên liệu"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "Ngày hoàn thành"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr ""
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr ""
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr ""
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr ""
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr ""
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr ""
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr "Trạng thái"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "Đã hoàn thành"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr ""
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr ""
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr ""
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr ""
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr ""
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr ""
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr ""
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr ""
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr ""
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr ""
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr ""
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr ""
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "Hiển thị nguyên liệu mới nhất"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr ""
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr ""
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr ""
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr ""
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr ""
@@ -2625,9 +2643,9 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr ""
@@ -2635,16 +2653,16 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr ""
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr ""
msgid "Manufacturer"
msgstr "Nhà sản xuất"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr ""
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr ""
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr ""
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr ""
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr ""
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr "Nhà cung cấp"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr ""
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr ""
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr ""
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr ""
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr ""
@@ -2927,8 +2946,8 @@ msgstr ""
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr ""
@@ -2950,8 +2969,8 @@ msgstr ""
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr ""
@@ -2978,7 +2997,7 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr ""
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr ""
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr ""
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr ""
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr ""
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr ""
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr ""
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr ""
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr ""
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr ""
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr ""
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr ""
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr ""
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr ""
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr ""
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr ""
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr ""
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "Giá mua"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr ""
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr ""
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr ""
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr ""
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "Nguyên liệu"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr ""
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr ""
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr ""
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr ""
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr ""
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr ""
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr ""
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr ""
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr ""
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr ""
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr ""
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr ""
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr ""
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr ""
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr ""
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr ""
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr ""
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr ""
@@ -5494,31 +5515,31 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr ""
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr ""
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr ""
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Kho hàng"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr ""
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr "Quản trị"
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr ""
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr ""
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr ""
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr ""
@@ -10250,51 +10276,51 @@ msgstr ""
msgid "Select which users are assigned to this group"
msgstr ""
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr ""
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr ""
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr ""
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:219
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 f42e038688..95410df77b 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-05-28 23:41+0000\n"
-"PO-Revision-Date: 2022-05-29 01:47\n"
+"POT-Creation-Date: 2022-06-02 14:08+0000\n"
+"PO-Revision-Date: 2022-06-02 14:42\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -17,44 +17,44 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:49
+#: InvenTree/api.py:46
msgid "API endpoint not found"
msgstr "未找到 API 端点"
-#: InvenTree/exceptions.py:50
+#: InvenTree/exceptions.py:46
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:96
+#: InvenTree/fields.py:94
msgid "Enter date"
msgstr "输入日期"
-#: InvenTree/forms.py:124 templates/account/email_confirm.html:20
+#: InvenTree/forms.py:117 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:630
msgid "Confirm"
msgstr "确认"
-#: InvenTree/forms.py:140
+#: InvenTree/forms.py:134
msgid "Confirm delete"
msgstr "确认删除"
-#: InvenTree/forms.py:141
+#: InvenTree/forms.py:135
msgid "Confirm item deletion"
msgstr "确认删除"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:167
msgid "Enter password"
msgstr "输入密码"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:168
msgid "Enter new password"
msgstr "输入新密码"
-#: InvenTree/forms.py:180
+#: InvenTree/forms.py:175
msgid "Confirm password"
msgstr "确认密码"
-#: InvenTree/forms.py:181
+#: InvenTree/forms.py:176
msgid "Confirm new password"
msgstr "确认新密码"
@@ -70,72 +70,73 @@ msgstr "Email (再次)"
msgid "Email address confirmation"
msgstr "Email 地址确认"
-#: InvenTree/forms.py:258
+#: InvenTree/forms.py:259
msgid "You must type the same email each time."
msgstr "您必须输入相同的 Email 。"
-#: InvenTree/helpers.py:449
+#: InvenTree/helpers.py:402
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:456 order/models.py:365 order/models.py:519
+#: InvenTree/helpers.py:409 order/models.py:365 order/models.py:517
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
-#: InvenTree/helpers.py:459
+#: InvenTree/helpers.py:412
msgid "Empty serial number string"
msgstr "空序列号字符串"
-#: InvenTree/helpers.py:491
+#: InvenTree/helpers.py:444
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:494
+#: InvenTree/helpers.py:447
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "无效的群组: {g}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:475
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:530
+#: InvenTree/helpers.py:483
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:536
+#: InvenTree/helpers.py:489
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:540
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:181
+#: InvenTree/models.py:174
msgid "Missing file"
msgstr "缺少文件"
-#: InvenTree/models.py:182
+#: InvenTree/models.py:175
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:193 stock/models.py:2202
-#: templates/js/translated/attachment.js:119
+#: InvenTree/models.py:187 stock/models.py:2086
+#: templates/js/translated/attachment.js:101
+#: templates/js/translated/attachment.js:198
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:194
+#: InvenTree/models.py:188
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:200 company/models.py:123 company/models.py:337
-#: company/models.py:569 order/models.py:139 order/models.py:1273
-#: part/models.py:855
+#: InvenTree/models.py:194 company/models.py:123 company/models.py:272
+#: company/models.py:506 order/models.py:135 order/models.py:1235
+#: part/models.py:795
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:655
#: templates/js/translated/company.js:946 templates/js/translated/order.js:2676
@@ -143,64 +144,65 @@ msgstr "选择附件"
msgid "Link"
msgstr "链接"
-#: InvenTree/models.py:201 build/models.py:330 part/models.py:856
-#: stock/models.py:665
+#: InvenTree/models.py:195 build/models.py:320 part/models.py:796
+#: stock/models.py:642
msgid "Link to external URL"
msgstr "链接到外部 URL"
-#: InvenTree/models.py:204 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:198 templates/js/translated/attachment.js:102
+#: templates/js/translated/attachment.js:242
msgid "Comment"
msgstr "注释"
-#: InvenTree/models.py:204
+#: InvenTree/models.py:198
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:210 InvenTree/models.py:211 common/models.py:1567
-#: common/models.py:1568 common/models.py:1802 common/models.py:1803
-#: common/models.py:2030 common/models.py:2031 part/models.py:2357
-#: part/models.py:2377 plugin/models.py:260 plugin/models.py:261
+#: InvenTree/models.py:204 InvenTree/models.py:205 common/models.py:1499
+#: common/models.py:1500 common/models.py:1728 common/models.py:1729
+#: common/models.py:1991 common/models.py:1992 part/models.py:2153
+#: part/models.py:2173 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2513
msgid "User"
msgstr "用户"
-#: InvenTree/models.py:214
+#: InvenTree/models.py:208
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:237
+#: InvenTree/models.py:230
msgid "Filename must not be empty"
msgstr "文件名不能为空!"
-#: InvenTree/models.py:260
+#: InvenTree/models.py:253
msgid "Invalid attachment directory"
msgstr "非法的附件目录"
-#: InvenTree/models.py:270
+#: InvenTree/models.py:263
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "文件名包含非法字符 '{c}'"
-#: InvenTree/models.py:273
+#: InvenTree/models.py:266
msgid "Filename missing extension"
msgstr "缺少文件名扩展"
-#: InvenTree/models.py:280
+#: InvenTree/models.py:273
msgid "Attachment with this filename already exists"
msgstr "使用此文件名的附件已存在"
-#: InvenTree/models.py:287
+#: InvenTree/models.py:280
msgid "Error renaming file"
msgstr "重命名文件出错"
-#: InvenTree/models.py:322
+#: InvenTree/models.py:314
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:338 InvenTree/models.py:339 common/models.py:1788
-#: company/models.py:420 label/models.py:104 part/models.py:799
-#: part/models.py:2541 plugin/models.py:99 report/models.py:169
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1714
+#: company/models.py:354 label/models.py:101 part/models.py:739
+#: part/models.py:2331 plugin/models.py:93 report/models.py:151
#: templates/InvenTree/notifications/notifications.html:84
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:49
@@ -214,15 +216,15 @@ msgstr "选择无效"
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:345 build/models.py:207
-#: build/templates/build/detail.html:24 company/models.py:343
-#: company/models.py:575 company/templates/company/company_base.html:71
+#: InvenTree/models.py:340 build/models.py:197
+#: build/templates/build/detail.html:24 company/models.py:278
+#: company/models.py:512 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:73 label/models.py:111
-#: order/models.py:137 part/models.py:822 part/templates/part/category.html:74
+#: company/templates/company/supplier_part.html:73 label/models.py:108
+#: order/models.py:133 part/models.py:762 part/templates/part/category.html:74
#: part/templates/part/part_base.html:167
-#: part/templates/part/set_category.html:14 report/models.py:182
-#: report/models.py:547 report/models.py:586
+#: part/templates/part/set_category.html:14 report/models.py:164
+#: report/models.py:509 report/models.py:550
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:103
#: templates/InvenTree/settings/plugin_settings.html:33
@@ -238,232 +240,232 @@ msgstr "名称"
msgid "Description"
msgstr "描述信息"
-#: InvenTree/models.py:346
+#: InvenTree/models.py:341
msgid "Description (optional)"
msgstr "描述 (可选)"
-#: InvenTree/models.py:354
+#: InvenTree/models.py:349
msgid "parent"
msgstr "上级项"
-#: InvenTree/serializers.py:59 part/models.py:2874
+#: InvenTree/serializers.py:52 part/models.py:2650
msgid "Must be a valid number"
msgstr "必须是有效数字"
-#: InvenTree/serializers.py:293
+#: InvenTree/serializers.py:271
msgid "Filename"
msgstr "文件名"
-#: InvenTree/serializers.py:328
+#: InvenTree/serializers.py:306
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:349
+#: InvenTree/serializers.py:328
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:350
+#: InvenTree/serializers.py:329
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:374
+#: InvenTree/serializers.py:350
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:380
+#: InvenTree/serializers.py:356
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:377
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:404
+#: InvenTree/serializers.py:380
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:530
+#: InvenTree/serializers.py:503
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:533
+#: InvenTree/serializers.py:506
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:620
+#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:629
+#: InvenTree/serializers.py:592
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:683
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:684
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:685
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:686
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:687
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:690
+#: InvenTree/settings.py:688
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:691
+#: InvenTree/settings.py:689
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:692
+#: InvenTree/settings.py:690
msgid "Chinese"
msgstr "中文(简体)"
-#: InvenTree/status.py:108
+#: InvenTree/status.py:99
msgid "Background worker check failed"
msgstr "后台工作人员检查失败"
-#: InvenTree/status.py:112
+#: InvenTree/status.py:103
msgid "Email backend not configured"
msgstr "未配置电子邮件后端"
-#: InvenTree/status.py:115
+#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
msgstr "InventTree系统健康检查失败"
-#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:326
msgid "Pending"
msgstr "待定"
-#: InvenTree/status_codes.py:102
+#: InvenTree/status_codes.py:100
msgid "Placed"
msgstr "已添加"
-#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:309
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
#: order/templates/order/order_base.html:134
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "完成"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
msgstr "已取消"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
msgid "Lost"
msgstr "丢失"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
msgid "Returned"
msgstr "已退回"
-#: InvenTree/status_codes.py:143 order/models.py:1141
-#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3581
+#: InvenTree/status_codes.py:141 order/models.py:1114
+#: templates/js/translated/order.js:3264 templates/js/translated/order.js:3607
msgid "Shipped"
msgstr "已发货"
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:179
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:180
msgid "Attention needed"
msgstr "需要关注"
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:181
msgid "Damaged"
msgstr "破损"
-#: InvenTree/status_codes.py:183
+#: InvenTree/status_codes.py:182
msgid "Destroyed"
msgstr "已销毁"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:184
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:185
msgid "Quarantined"
msgstr ""
@@ -559,123 +561,123 @@ msgstr "收到定购单"
msgid "Production"
msgstr "生产中"
-#: InvenTree/validators.py:23
+#: InvenTree/validators.py:18
msgid "Not a valid currency code"
msgstr "不是有效的货币代码"
-#: InvenTree/validators.py:51
+#: InvenTree/validators.py:45
msgid "Invalid character in part name"
msgstr "商品名称中存在无效字符"
-#: InvenTree/validators.py:64
+#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN 必须匹配正则表达式 {pat}"
-#: InvenTree/validators.py:78 InvenTree/validators.py:92
-#: InvenTree/validators.py:106
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#: InvenTree/validators.py:90
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "引用必须匹配模板 {pattern}"
-#: InvenTree/validators.py:114
+#: InvenTree/validators.py:97
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "名称中存在非法字符 ({x})"
-#: InvenTree/validators.py:135 InvenTree/validators.py:151
+#: InvenTree/validators.py:116 InvenTree/validators.py:132
msgid "Overage value must not be negative"
msgstr "备损值不能为负数"
-#: InvenTree/validators.py:153
+#: InvenTree/validators.py:134
msgid "Overage must not exceed 100%"
msgstr "备损不能超过 100%"
-#: InvenTree/validators.py:160
+#: InvenTree/validators.py:141
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:534
+#: InvenTree/views.py:522
msgid "Delete Item"
msgstr "删除项"
-#: InvenTree/views.py:583
+#: InvenTree/views.py:571
msgid "Check box to confirm item deletion"
msgstr "选中方框以确认项目删除"
-#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:586 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr "编辑用户信息"
-#: InvenTree/views.py:609 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:598 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "设置密码"
-#: InvenTree/views.py:628
+#: InvenTree/views.py:618
msgid "Password fields must match"
msgstr "密码字段必须相匹配。"
-#: InvenTree/views.py:875 templates/navbar.html:152
+#: InvenTree/views.py:842 templates/navbar.html:152
msgid "System Information"
msgstr "系统信息"
-#: build/models.py:133
+#: build/models.py:126
msgid "Invalid choice for parent build"
msgstr "上级生产选项无效"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:131 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:727
msgid "Build Order"
msgstr "生产订单"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:132 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:114
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:139
-#: templates/InvenTree/settings/sidebar.html:45 users/models.py:42
+#: templates/InvenTree/settings/sidebar.html:45 users/models.py:40
msgid "Build Orders"
msgstr "生产订单"
-#: build/models.py:198
+#: build/models.py:188
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:199 order/models.py:295 order/models.py:647
-#: order/models.py:942 part/models.py:2785
+#: build/models.py:189 order/models.py:288 order/models.py:638
+#: order/models.py:916 part/models.py:2568
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:688 templates/js/translated/bom.js:858
#: templates/js/translated/build.js:1777 templates/js/translated/order.js:1919
#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3448
-#: templates/js/translated/order.js:3933
+#: templates/js/translated/order.js:3959
msgid "Reference"
msgstr "引用"
-#: build/models.py:210
+#: build/models.py:200
msgid "Brief description of the build"
msgstr "生产的简短描述."
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:209 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:87
msgid "Parent Build"
msgstr "上级生产"
-#: build/models.py:220
+#: build/models.py:210
msgid "BuildOrder to which this build is allocated"
msgstr "此次生产匹配的订单"
-#: build/models.py:225 build/templates/build/build_base.html:77
-#: build/templates/build/detail.html:29 company/models.py:711
-#: order/models.py:1041 order/models.py:1130 part/models.py:354
-#: part/models.py:2303 part/models.py:2319 part/models.py:2338
-#: part/models.py:2355 part/models.py:2457 part/models.py:2579
-#: part/models.py:2669 part/models.py:2760 part/models.py:3050
-#: part/serializers.py:917 part/templates/part/part_app_base.html:8
+#: build/models.py:215 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:29 company/models.py:647
+#: order/models.py:1012 order/models.py:1103 part/models.py:336
+#: part/models.py:2099 part/models.py:2114 part/models.py:2133
+#: part/models.py:2151 part/models.py:2250 part/models.py:2370
+#: part/models.py:2458 part/models.py:2543 part/models.py:2819
+#: part/serializers.py:793 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -704,193 +706,193 @@ msgstr "此次生产匹配的订单"
msgid "Part"
msgstr "商品"
-#: build/models.py:233
+#: build/models.py:223
msgid "Select part to build"
msgstr "选择要生产的商品"
-#: build/models.py:238
+#: build/models.py:228
msgid "Sales Order Reference"
msgstr "相关销售订单"
-#: build/models.py:242
+#: build/models.py:232
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:247 build/serializers.py:790
+#: build/models.py:237 build/serializers.py:758
#: templates/js/translated/build.js:2071 templates/js/translated/order.js:2807
msgid "Source Location"
msgstr "来源地点"
-#: build/models.py:251
+#: build/models.py:241
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:246
msgid "Destination Location"
msgstr "目标地点"
-#: build/models.py:260
+#: build/models.py:250
msgid "Select location where the completed items will be stored"
msgstr "选择已完成项目仓储地点"
-#: build/models.py:264
+#: build/models.py:254
msgid "Build Quantity"
msgstr "生产数量"
-#: build/models.py:267
+#: build/models.py:257
msgid "Number of stock items to build"
msgstr "要生产的项目数量"
-#: build/models.py:271
+#: build/models.py:261
msgid "Completed items"
msgstr "已完成项目"
-#: build/models.py:273
+#: build/models.py:263
msgid "Number of stock items which have been completed"
msgstr "已完成的库存项目数量"
-#: build/models.py:277
+#: build/models.py:267
msgid "Build Status"
msgstr "生产状态"
-#: build/models.py:281
+#: build/models.py:271
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:285 build/serializers.py:220 order/serializers.py:440
-#: stock/models.py:669 templates/js/translated/order.js:1175
+#: build/models.py:275 build/serializers.py:215 order/serializers.py:440
+#: stock/models.py:646 templates/js/translated/order.js:1175
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:289 build/serializers.py:221
+#: build/models.py:279 build/serializers.py:216
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:292 order/models.py:141 part/models.py:994
+#: build/models.py:282 order/models.py:137 part/models.py:932
#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2489
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:296 order/models.py:669
+#: build/models.py:286 order/models.py:660
msgid "Target completion date"
msgstr "预计完成日期"
-#: build/models.py:297
+#: build/models.py:287
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/models.py:300 order/models.py:338
+#: build/models.py:290 order/models.py:331
#: templates/js/translated/build.js:2558
msgid "Completion Date"
msgstr "完成日期:"
-#: build/models.py:306
+#: build/models.py:296
msgid "completed by"
msgstr "完成人"
-#: build/models.py:314 templates/js/translated/build.js:2526
+#: build/models.py:304 templates/js/translated/build.js:2526
msgid "Issued by"
msgstr "发布者"
-#: build/models.py:315
+#: build/models.py:305
msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
-#: build/models.py:323 build/templates/build/build_base.html:190
-#: build/templates/build/detail.html:115 order/models.py:155
+#: build/models.py:313 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:115 order/models.py:151
#: order/templates/order/order_base.html:176
-#: order/templates/order/sales_order_base.html:183 part/models.py:998
+#: order/templates/order/sales_order_base.html:183 part/models.py:936
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:2538 templates/js/translated/order.js:1690
msgid "Responsible"
msgstr "责任人"
-#: build/models.py:324
+#: build/models.py:314
msgid "User responsible for this build order"
msgstr "负责此生产订单的用户"
-#: build/models.py:329 build/templates/build/detail.html:101
+#: build/models.py:319 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:132
-#: part/templates/part/part_base.html:346 stock/models.py:663
+#: part/templates/part/part_base.html:346 stock/models.py:640
#: stock/templates/stock/item_base.html:205
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:334 build/serializers.py:390
+#: build/models.py:324 build/serializers.py:374
#: build/templates/build/sidebar.html:21 company/models.py:134
-#: company/models.py:582 company/templates/company/sidebar.html:25
-#: order/models.py:159 order/models.py:944 order/models.py:1251
+#: company/models.py:519 company/templates/company/sidebar.html:25
+#: order/models.py:155 order/models.py:918 order/models.py:1213
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:983
+#: order/templates/order/so_sidebar.html:17 part/models.py:921
#: part/templates/part/part_sidebar.html:59
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/models.py:736 stock/models.py:2102 stock/models.py:2208
-#: stock/serializers.py:321 stock/serializers.py:459 stock/serializers.py:728
-#: stock/serializers.py:826 stock/serializers.py:958
+#: stock/models.py:713 stock/models.py:1984 stock/models.py:2092
+#: stock/serializers.py:315 stock/serializers.py:444 stock/serializers.py:730
+#: stock/serializers.py:829 stock/serializers.py:961
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1044
#: templates/js/translated/company.js:962 templates/js/translated/order.js:2040
#: templates/js/translated/order.js:2191 templates/js/translated/order.js:2687
-#: templates/js/translated/order.js:3606 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:3632 templates/js/translated/order.js:4030
#: templates/js/translated/stock.js:1307 templates/js/translated/stock.js:1916
msgid "Notes"
msgstr "备注"
-#: build/models.py:335
+#: build/models.py:325
msgid "Extra build notes"
msgstr "额外的生产备注"
-#: build/models.py:773
+#: build/models.py:711
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:776
+#: build/models.py:714
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:779
+#: build/models.py:717
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:1213
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1222
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1232
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1238 order/models.py:1413
+#: build/models.py:1133 order/models.py:1372
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1244
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1301
+#: build/models.py:1196
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1375 stock/templates/stock/item_base.html:177
+#: build/models.py:1265 stock/templates/stock/item_base.html:177
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2454
#: templates/navbar.html:38
msgid "Build"
msgstr "生产"
-#: build/models.py:1376
+#: build/models.py:1266
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1392 build/serializers.py:631 order/serializers.py:964
-#: order/serializers.py:982 stock/serializers.py:393 stock/serializers.py:666
-#: stock/serializers.py:784 stock/templates/stock/item_base.html:10
+#: build/models.py:1282 build/serializers.py:603 order/serializers.py:994
+#: order/serializers.py:1015 stock/serializers.py:382 stock/serializers.py:661
+#: stock/serializers.py:787 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:199
#: templates/js/translated/build.js:738 templates/js/translated/build.js:743
@@ -903,17 +905,17 @@ msgstr ""
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1393
+#: build/models.py:1283
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1405 build/serializers.py:190
+#: build/models.py:1295 build/serializers.py:183
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1610
-#: company/forms.py:38 company/templates/company/supplier_part.html:258
-#: order/models.py:935 order/models.py:1453 order/serializers.py:1103
-#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:121
-#: part/forms.py:137 part/forms.py:153 part/models.py:2776
+#: build/templates/build/detail.html:34 common/models.py:1536
+#: company/forms.py:36 company/templates/company/supplier_part.html:258
+#: order/models.py:909 order/models.py:1412 order/serializers.py:1134
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:104
+#: part/forms.py:119 part/forms.py:134 part/models.py:2559
#: part/templates/part/detail.html:935 part/templates/part/detail.html:1021
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -922,7 +924,7 @@ msgstr "源库存项"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:282 stock/templates/stock/item_base.html:292
+#: stock/serializers.py:279 stock/templates/stock/item_base.html:292
#: stock/templates/stock/item_base.html:300
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:689
#: templates/js/translated/bom.js:866 templates/js/translated/build.js:422
@@ -934,7 +936,7 @@ msgstr "源库存项"
#: templates/js/translated/order.js:1925 templates/js/translated/order.js:2126
#: templates/js/translated/order.js:2821 templates/js/translated/order.js:3143
#: templates/js/translated/order.js:3231 templates/js/translated/order.js:3320
-#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3939
+#: templates/js/translated/order.js:3454 templates/js/translated/order.js:3965
#: templates/js/translated/part.js:967 templates/js/translated/part.js:1969
#: templates/js/translated/part.js:2200 templates/js/translated/part.js:2234
#: templates/js/translated/part.js:2312 templates/js/translated/stock.js:403
@@ -943,87 +945,87 @@ msgstr "源库存项"
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1406
+#: build/models.py:1296
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1414
+#: build/models.py:1304
msgid "Install into"
msgstr "安装到"
-#: build/models.py:1415
+#: build/models.py:1305
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:135 build/serializers.py:660
+#: build/serializers.py:128 build/serializers.py:632
#: templates/js/translated/build.js:1163
msgid "Build Output"
msgstr ""
-#: build/serializers.py:147
+#: build/serializers.py:140
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:151
+#: build/serializers.py:144
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:155
+#: build/serializers.py:148
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:166
+#: build/serializers.py:159
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:191
+#: build/serializers.py:184
msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
-#: build/serializers.py:203 build/serializers.py:651 order/models.py:363
-#: order/serializers.py:289 order/serializers.py:435 part/serializers.py:588
-#: part/serializers.py:1084 stock/models.py:496 stock/models.py:1307
-#: stock/serializers.py:294
+#: build/serializers.py:198 build/serializers.py:623 order/models.py:363
+#: order/serializers.py:280 order/serializers.py:435 part/serializers.py:512
+#: part/serializers.py:956 stock/models.py:470 stock/models.py:1238
+#: stock/serializers.py:288
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:210
+#: build/serializers.py:205
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:213
+#: build/serializers.py:208
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:227 order/serializers.py:448 order/serializers.py:1107
-#: stock/serializers.py:303 templates/js/translated/order.js:1186
+#: build/serializers.py:222 order/serializers.py:448 order/serializers.py:1138
+#: stock/serializers.py:297 templates/js/translated/order.js:1186
#: templates/js/translated/stock.js:238 templates/js/translated/stock.js:404
msgid "Serial Numbers"
msgstr "序列号"
-#: build/serializers.py:228
+#: build/serializers.py:223
msgid "Enter serial numbers for build outputs"
msgstr "输入生产产出的序列号"
-#: build/serializers.py:241
+#: build/serializers.py:236
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:242
+#: build/serializers.py:237
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:276 stock/api.py:590
+#: build/serializers.py:268 stock/api.py:547
msgid "The following serial numbers already exist"
msgstr ""
-#: build/serializers.py:329 build/serializers.py:402
+#: build/serializers.py:317 build/serializers.py:386
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:372 order/serializers.py:421 order/serializers.py:526
-#: stock/serializers.py:314 stock/serializers.py:454 stock/serializers.py:819
-#: stock/serializers.py:1060 stock/templates/stock/item_base.html:390
+#: build/serializers.py:356 order/serializers.py:421 order/serializers.py:525
+#: stock/serializers.py:308 stock/serializers.py:439 stock/serializers.py:822
+#: stock/serializers.py:1055 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:750
#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1213
@@ -1035,12 +1037,12 @@ msgstr ""
msgid "Location"
msgstr "地点"
-#: build/serializers.py:373
+#: build/serializers.py:357
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:379 build/templates/build/build_base.html:142
-#: build/templates/build/detail.html:62 order/models.py:663
+#: build/serializers.py:363 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:62 order/models.py:654
#: order/serializers.py:458 stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2510
#: templates/js/translated/order.js:1320 templates/js/translated/order.js:1660
@@ -1049,133 +1051,133 @@ msgstr ""
msgid "Status"
msgstr "状态"
-#: build/serializers.py:385
+#: build/serializers.py:369
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:386
+#: build/serializers.py:370
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:456
+#: build/serializers.py:439
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:457
+#: build/serializers.py:440
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:463
+#: build/serializers.py:446
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:464
+#: build/serializers.py:447
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:489
+#: build/serializers.py:470
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:490
+#: build/serializers.py:471
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:500 templates/js/translated/build.js:195
+#: build/serializers.py:481 templates/js/translated/build.js:195
msgid "Required stock has not been fully allocated"
msgstr "所需库存尚未完全分配"
-#: build/serializers.py:505
+#: build/serializers.py:486
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:487
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:516 templates/js/translated/build.js:199
+#: build/serializers.py:497 templates/js/translated/build.js:199
msgid "Required build quantity has not been completed"
msgstr "所需生产数量尚未完成"
-#: build/serializers.py:525
+#: build/serializers.py:506
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:528 build/templates/build/build_base.html:95
+#: build/serializers.py:509 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:556 build/serializers.py:605 part/models.py:2900
-#: part/models.py:3042
+#: build/serializers.py:535 build/serializers.py:580 part/models.py:2677
+#: part/models.py:2811
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:566
+#: build/serializers.py:545
msgid "Build output"
msgstr ""
-#: build/serializers.py:575
+#: build/serializers.py:553
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:622
+#: build/serializers.py:594
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:637 stock/serializers.py:673
+#: build/serializers.py:609 stock/serializers.py:674
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:694 order/serializers.py:1015
+#: build/serializers.py:667 order/serializers.py:1052
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:700
+#: build/serializers.py:673
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:707
+#: build/serializers.py:680
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:712
+#: build/serializers.py:685
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:739 order/serializers.py:1277
+#: build/serializers.py:708 order/serializers.py:1298
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:791
+#: build/serializers.py:759
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:799
+#: build/serializers.py:767
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:800
+#: build/serializers.py:768
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:805
+#: build/serializers.py:773
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:806
+#: build/serializers.py:774
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:811
+#: build/serializers.py:779
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:812
+#: build/serializers.py:780
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/tasks.py:95
+#: build/tasks.py:96
msgid "Stock required for build order"
msgstr ""
@@ -1241,7 +1243,7 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:151
-#: build/templates/build/detail.html:131 order/models.py:948
+#: build/templates/build/detail.html:131 order/models.py:922
#: order/templates/order/order_base.html:162
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:126
@@ -1274,8 +1276,8 @@ msgid "Completed"
msgstr "已完成"
#: build/templates/build/build_base.html:176
-#: build/templates/build/detail.html:94 order/models.py:1127
-#: order/models.py:1223 order/models.py:1357
+#: build/templates/build/detail.html:94 order/models.py:1100
+#: order/models.py:1185 order/models.py:1320
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
@@ -1316,7 +1318,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1063
+#: build/templates/build/detail.html:49 order/models.py:1034
#: templates/js/translated/order.js:1321 templates/js/translated/order.js:2029
msgid "Destination"
msgstr ""
@@ -1508,929 +1510,945 @@ msgstr ""
msgid "Completed Outputs"
msgstr ""
-#: build/views.py:80
+#: build/views.py:59
msgid "Delete Build Order"
msgstr "删除生产订单"
-#: common/files.py:66
+#: common/files.py:62
msgid "Unsupported file format: {ext.upper()}"
msgstr "不支持的文件格式: {ext.uper()}"
-#: common/files.py:68
+#: common/files.py:64
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:69
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:75
+#: common/files.py:71
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:77
+#: common/files.py:73
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:31
+#: common/forms.py:29
msgid "File"
msgstr ""
-#: common/forms.py:32
+#: common/forms.py:30
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:47
+#: common/forms.py:44
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:48
+#: common/forms.py:45
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:394
+#: common/models.py:365
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:396
+#: common/models.py:367
msgid "Settings value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:408
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:457
+#: common/models.py:425
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:468
+#: common/models.py:436
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:517
+#: common/models.py:481
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:739
+#: common/models.py:665
msgid "No group"
msgstr ""
-#: common/models.py:781
+#: common/models.py:704
msgid "Restart required"
msgstr ""
-#: common/models.py:782
+#: common/models.py:705
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:789
+#: common/models.py:712
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:791
+#: common/models.py:714
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:795
+#: common/models.py:718
msgid "Use instance name"
msgstr ""
-#: common/models.py:796
+#: common/models.py:719
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:802
+#: common/models.py:725
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:803
+#: common/models.py:726
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:809 company/models.py:92 company/models.py:93
+#: common/models.py:732 company/models.py:92 company/models.py:93
msgid "Company name"
msgstr "公司名称"
-#: common/models.py:810
+#: common/models.py:733
msgid "Internal company name"
msgstr "内部公司名称"
-#: common/models.py:815
+#: common/models.py:738
msgid "Base URL"
msgstr ""
-#: common/models.py:816
+#: common/models.py:739
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:822
+#: common/models.py:745
msgid "Default Currency"
msgstr ""
-#: common/models.py:823
+#: common/models.py:746
msgid "Default currency"
msgstr ""
-#: common/models.py:829
+#: common/models.py:752
msgid "Download from URL"
msgstr ""
-#: common/models.py:830
+#: common/models.py:753
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:836 templates/InvenTree/settings/sidebar.html:33
+#: common/models.py:759 templates/InvenTree/settings/sidebar.html:33
msgid "Barcode Support"
msgstr ""
-#: common/models.py:837
+#: common/models.py:760
msgid "Enable barcode scanner support"
msgstr "启用条形码扫描支持"
-#: common/models.py:843
+#: common/models.py:766
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:844
+#: common/models.py:767
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:850
+#: common/models.py:773
msgid "IPN Regex"
msgstr ""
-#: common/models.py:851
+#: common/models.py:774
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:855
+#: common/models.py:778
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:856
+#: common/models.py:779
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:862
+#: common/models.py:785
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:863
+#: common/models.py:786
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:869
+#: common/models.py:792
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:870
+#: common/models.py:793
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:876
+#: common/models.py:799
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:877
+#: common/models.py:800
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:883
+#: common/models.py:806
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:884
+#: common/models.py:807
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:890
+#: common/models.py:813
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:891
+#: common/models.py:814
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:897 part/models.py:2581 report/models.py:175
+#: common/models.py:820 part/models.py:2372 report/models.py:157
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:444
msgid "Template"
msgstr "模板"
-#: common/models.py:898
+#: common/models.py:821
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:904 part/models.py:946 templates/js/translated/bom.js:1390
+#: common/models.py:827 part/models.py:884 templates/js/translated/bom.js:1390
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:460
msgid "Assembly"
msgstr "组装"
-#: common/models.py:905
+#: common/models.py:828
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:911 part/models.py:952
+#: common/models.py:834 part/models.py:890
#: templates/js/translated/table_filters.js:464
msgid "Component"
msgstr "组件"
-#: common/models.py:912
+#: common/models.py:835
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:918 part/models.py:963
+#: common/models.py:841 part/models.py:901
msgid "Purchaseable"
msgstr "可购买"
-#: common/models.py:919
+#: common/models.py:842
msgid "Parts are purchaseable by default"
msgstr "商品默认可购买"
-#: common/models.py:925 part/models.py:968
+#: common/models.py:848 part/models.py:906
#: templates/js/translated/table_filters.js:472
msgid "Salable"
msgstr "可销售"
-#: common/models.py:926
+#: common/models.py:849
msgid "Parts are salable by default"
msgstr "商品默认可销售"
-#: common/models.py:932 part/models.py:958
+#: common/models.py:855 part/models.py:896
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:476
msgid "Trackable"
msgstr "可追踪"
-#: common/models.py:933
+#: common/models.py:856
msgid "Parts are trackable by default"
msgstr "商品默认可跟踪"
-#: common/models.py:939 part/models.py:978
+#: common/models.py:862 part/models.py:916
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "虚拟"
-#: common/models.py:940
+#: common/models.py:863
msgid "Parts are virtual by default"
msgstr "商品默认是虚拟的"
-#: common/models.py:946
+#: common/models.py:869
msgid "Show Import in Views"
msgstr "视图中显示导入"
-#: common/models.py:947
+#: common/models.py:870
msgid "Display the import wizard in some part views"
msgstr "在一些商品视图中显示导入向导"
-#: common/models.py:953
+#: common/models.py:876
msgid "Show Price in Forms"
msgstr "在表格中显示价格"
-#: common/models.py:954
+#: common/models.py:877
msgid "Display part price in some forms"
msgstr "以某些表格显示商品价格"
-#: common/models.py:965
+#: common/models.py:888
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:966
+#: common/models.py:889
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:977
+#: common/models.py:900
msgid "Show Price History"
msgstr ""
-#: common/models.py:978
+#: common/models.py:901
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:984
+#: common/models.py:907
msgid "Show related parts"
msgstr "显示相关商品"
-#: common/models.py:985
+#: common/models.py:908
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:991
+#: common/models.py:914
msgid "Create initial stock"
msgstr "创建初始库存"
-#: common/models.py:992
+#: common/models.py:915
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:998
+#: common/models.py:921
msgid "Internal Prices"
msgstr "内部价格"
-#: common/models.py:999
+#: common/models.py:922
msgid "Enable internal prices for parts"
msgstr "启用内部商品价格"
-#: common/models.py:1005
+#: common/models.py:928
msgid "Internal Price as BOM-Price"
msgstr "内部价格为BOM价格"
-#: common/models.py:1006
+#: common/models.py:929
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "在 BOM价格计算中使用内部价格(如设置)"
-#: common/models.py:1012
+#: common/models.py:935
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:936
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:943
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:944
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1027 templates/stats.html:25
+#: common/models.py:950 templates/stats.html:25
msgid "Debug Mode"
msgstr "调试模式"
-#: common/models.py:1028
+#: common/models.py:951
msgid "Generate reports in debug mode (HTML output)"
msgstr "在调试模式生成报告(HTML输出)"
-#: common/models.py:1034
+#: common/models.py:957
msgid "Page Size"
msgstr "页面大小"
-#: common/models.py:1035
+#: common/models.py:958
msgid "Default page size for PDF reports"
msgstr "PDF 报表默认页面大小"
-#: common/models.py:1045
+#: common/models.py:968
msgid "Test Reports"
msgstr "测试报表"
-#: common/models.py:1046
+#: common/models.py:969
msgid "Enable generation of test reports"
msgstr "启用生成测试报表"
-#: common/models.py:1052
+#: common/models.py:975
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:976
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1058
+#: common/models.py:981
msgid "Stock Expiry"
msgstr "库存到期"
-#: common/models.py:1059
+#: common/models.py:982
msgid "Enable stock expiry functionality"
msgstr "启用库存到期功能"
-#: common/models.py:1065
+#: common/models.py:988
msgid "Sell Expired Stock"
msgstr "销售过期库存"
-#: common/models.py:1066
+#: common/models.py:989
msgid "Allow sale of expired stock"
msgstr "允许销售过期库存"
-#: common/models.py:1072
+#: common/models.py:995
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:996
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:998
msgid "days"
msgstr "天"
-#: common/models.py:1080
+#: common/models.py:1003
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1004
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1010
msgid "Stock Ownership Control"
msgstr "库存所有权控制"
-#: common/models.py:1088
+#: common/models.py:1011
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1094
+#: common/models.py:1017
msgid "Build Order Reference Prefix"
msgstr "生产订单参考前缀"
-#: common/models.py:1095
+#: common/models.py:1018
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:1100
+#: common/models.py:1023
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:1101
+#: common/models.py:1024
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1028
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1029
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1034
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1035
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1041
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1042
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1048
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1049
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1055
msgid "Enable registration"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1056
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1062
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1063
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1069
msgid "Email required"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1070
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1076
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1077
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1083
msgid "Mail twice"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1084
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1090
msgid "Password twice"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1091
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1097
msgid "Group on signup"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1098
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1104
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1105
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1111
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1112
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1120
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1121
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1128
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1129
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1136
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1214
+#: common/models.py:1137
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1221
+#: common/models.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1222
+#: common/models.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1152
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1153
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1245 common/models.py:1560
+#: common/models.py:1170 common/models.py:1492
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1276
+#: common/models.py:1192
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1193
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1283
+#: common/models.py:1199
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1200
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1290
+#: common/models.py:1206
msgid "Show latest parts"
msgstr "显示最近商品"
-#: common/models.py:1291
+#: common/models.py:1207
msgid "Show latest parts on the homepage"
msgstr "在主页上显示最近商品"
-#: common/models.py:1297
+#: common/models.py:1213
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1214
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1304
+#: common/models.py:1220
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1221
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1311
+#: common/models.py:1227
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1228
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1318
+#: common/models.py:1234
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1319
+#: common/models.py:1235
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1325
+#: common/models.py:1241
msgid "Show low stock"
msgstr ""
-#: common/models.py:1326
+#: common/models.py:1242
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1332
+#: common/models.py:1248
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1333
+#: common/models.py:1249
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1339
+#: common/models.py:1255
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1340
+#: common/models.py:1256
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1346
+#: common/models.py:1262
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1347
+#: common/models.py:1263
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1353
+#: common/models.py:1269
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1354
+#: common/models.py:1270
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1360
+#: common/models.py:1276
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1361
+#: common/models.py:1277
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1367
+#: common/models.py:1283
msgid "Show overdue builds"
msgstr "显示逾期生产"
-#: common/models.py:1368
+#: common/models.py:1284
msgid "Show overdue builds on the homepage"
msgstr "在主页上显示逾期的生产"
-#: common/models.py:1374
+#: common/models.py:1290
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1291
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1381
+#: common/models.py:1297
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1298
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1388
+#: common/models.py:1304
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1389
+#: common/models.py:1305
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1395
+#: common/models.py:1311
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1312
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1401
+#: common/models.py:1317
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1402
+#: common/models.py:1318
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1408
+#: common/models.py:1324
msgid "Inline label display"
msgstr "内嵌标签显示"
-#: common/models.py:1409
+#: common/models.py:1325
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:1415
+#: common/models.py:1331
msgid "Inline report display"
msgstr ""
-#: common/models.py:1416
+#: common/models.py:1332
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:1422
+#: common/models.py:1338
msgid "Search Parts"
msgstr ""
-#: common/models.py:1423
+#: common/models.py:1339
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1345
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1346
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1352
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1353
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1359
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1430
+#: common/models.py:1360
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1436
+#: common/models.py:1366
msgid "Search Categories"
msgstr ""
-#: common/models.py:1437
+#: common/models.py:1367
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1443
+#: common/models.py:1373
msgid "Search Stock"
msgstr ""
-#: common/models.py:1444
+#: common/models.py:1374
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1450
+#: common/models.py:1380
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1451
+#: common/models.py:1381
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1457
+#: common/models.py:1387
msgid "Search Locations"
msgstr ""
-#: common/models.py:1458
+#: common/models.py:1388
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1464
+#: common/models.py:1394
msgid "Search Companies"
msgstr ""
-#: common/models.py:1465
+#: common/models.py:1395
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1401
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1402
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1408
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1409
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1415
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1416
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1492
+#: common/models.py:1422
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1493
+#: common/models.py:1423
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1499
+#: common/models.py:1429
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:1500
+#: common/models.py:1430
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1506
+#: common/models.py:1436
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:1507
+#: common/models.py:1437
msgid "Display available part quantity in some forms"
msgstr "在某些表格中显示可用的商品数量"
-#: common/models.py:1513
+#: common/models.py:1443
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1514
+#: common/models.py:1444
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1520
+#: common/models.py:1450
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1521
+#: common/models.py:1451
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1457
msgid "Date Format"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1458
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1542 part/templates/part/detail.html:39
+#: common/models.py:1472 part/templates/part/detail.html:39
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1543
+#: common/models.py:1473
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1611 company/forms.py:39
+#: common/models.py:1537 company/forms.py:37
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1618 company/serializers.py:285
-#: company/templates/company/supplier_part.html:263 order/models.py:975
+#: common/models.py:1544 company/serializers.py:288
+#: company/templates/company/supplier_part.html:263 order/models.py:949
#: templates/js/translated/part.js:998 templates/js/translated/part.js:1974
msgid "Price"
msgstr "价格"
-#: common/models.py:1619
+#: common/models.py:1545
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1779 common/models.py:1916
+#: common/models.py:1705 common/models.py:1883
msgid "Endpoint"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1706
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1715
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1794 part/models.py:973 plugin/models.py:105
+#: common/models.py:1720 part/models.py:911 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
#: templates/js/translated/table_filters.js:308
@@ -2438,107 +2456,107 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1795
+#: common/models.py:1721
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1809
+#: common/models.py:1735
msgid "Token"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1736
msgid "Token for access"
msgstr ""
-#: common/models.py:1817
+#: common/models.py:1743
msgid "Secret"
msgstr ""
-#: common/models.py:1818
+#: common/models.py:1744
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1883
+#: common/models.py:1850
msgid "Message ID"
msgstr ""
-#: common/models.py:1884
+#: common/models.py:1851
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1892
+#: common/models.py:1859
msgid "Host"
msgstr ""
-#: common/models.py:1893
+#: common/models.py:1860
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1900
+#: common/models.py:1867
msgid "Header"
msgstr ""
-#: common/models.py:1901
+#: common/models.py:1868
msgid "Header of this message"
msgstr ""
-#: common/models.py:1907
+#: common/models.py:1874
msgid "Body"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1875
msgid "Body of this message"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1884
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:1922
+#: common/models.py:1889
msgid "Worked on"
msgstr ""
-#: common/models.py:1923
+#: common/models.py:1890
msgid "Was the work on this message finished?"
msgstr ""
-#: common/views.py:90 order/templates/order/purchase_order_detail.html:23
-#: order/views.py:115 part/views.py:194
+#: common/views.py:87 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:194
#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "上传文件"
-#: common/views.py:91 order/views.py:116
+#: common/views.py:88 order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/views.py:195 templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "匹配字段"
-#: common/views.py:92
+#: common/views.py:89
msgid "Match Items"
msgstr "匹配项"
-#: common/views.py:437
+#: common/views.py:422
msgid "Fields matching failed"
msgstr "字段匹配失败"
-#: common/views.py:492
+#: common/views.py:483
msgid "Parts imported"
msgstr "已导入商品"
-#: common/views.py:514 order/templates/order/order_wizard/match_parts.html:19
+#: common/views.py:507 order/templates/order/order_wizard/match_parts.html:19
#: part/templates/part/import_wizard/match_references.html:19
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
msgstr ""
-#: company/forms.py:20 part/forms.py:41
+#: company/forms.py:16 part/forms.py:22
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: company/forms.py:21 part/forms.py:42
+#: company/forms.py:17 part/forms.py:23
msgid "Image URL"
msgstr "图片URL"
@@ -2597,7 +2615,7 @@ msgstr ""
msgid "Link to external company information"
msgstr "链接到外部公司信息"
-#: company/models.py:131 part/models.py:865
+#: company/models.py:131 part/models.py:805
msgid "Image"
msgstr "图片"
@@ -2625,9 +2643,9 @@ msgstr "是制造商"
msgid "Does this company manufacture parts?"
msgstr "该公司制造商品吗?"
-#: company/models.py:144 company/serializers.py:291
-#: company/templates/company/company_base.html:106 part/serializers.py:151
-#: part/serializers.py:183 stock/serializers.py:168
+#: company/models.py:144 company/serializers.py:294
+#: company/templates/company/company_base.html:106 part/serializers.py:137
+#: part/serializers.py:168 stock/serializers.py:162
msgid "Currency"
msgstr "货币"
@@ -2635,16 +2653,16 @@ msgstr "货币"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:309 company/models.py:540 stock/models.py:607
+#: company/models.py:244 company/models.py:477 stock/models.py:584
#: stock/templates/stock/item_base.html:148 templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:313 company/models.py:544
+#: company/models.py:248 company/models.py:481
msgid "Select part"
msgstr "选择商品"
-#: company/models.py:324 company/templates/company/company_base.html:76
+#: company/models.py:259 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:103
#: stock/templates/stock/item_base.html:212
@@ -2656,11 +2674,11 @@ msgstr "选择商品"
msgid "Manufacturer"
msgstr "制造商"
-#: company/models.py:325 templates/js/translated/part.js:236
+#: company/models.py:260 templates/js/translated/part.js:236
msgid "Select manufacturer"
msgstr "选择制造商"
-#: company/models.py:331 company/templates/company/manufacturer_part.html:101
+#: company/models.py:266 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:111
#: templates/js/translated/company.js:255
#: templates/js/translated/company.js:487
@@ -2670,58 +2688,58 @@ msgstr "选择制造商"
msgid "MPN"
msgstr ""
-#: company/models.py:332 templates/js/translated/part.js:247
+#: company/models.py:267 templates/js/translated/part.js:247
msgid "Manufacturer Part Number"
msgstr "制造商商品编号"
-#: company/models.py:338
+#: company/models.py:273
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:344
+#: company/models.py:279
msgid "Manufacturer part description"
msgstr "制造商商品描述"
-#: company/models.py:391 company/models.py:414 company/models.py:563
+#: company/models.py:324 company/models.py:348 company/models.py:500
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:222
msgid "Manufacturer Part"
msgstr "制造商商品"
-#: company/models.py:421
+#: company/models.py:355
msgid "Parameter name"
msgstr "参数名称"
-#: company/models.py:427
+#: company/models.py:361
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2195 templates/js/translated/company.js:540
+#: stock/models.py:2079 templates/js/translated/company.js:540
#: templates/js/translated/company.js:763 templates/js/translated/part.js:776
#: templates/js/translated/stock.js:1294
msgid "Value"
msgstr "数值"
-#: company/models.py:428
+#: company/models.py:362
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:434 part/models.py:940 part/models.py:2549
+#: company/models.py:368 part/models.py:878 part/models.py:2339
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:332
#: templates/js/translated/company.js:769 templates/js/translated/part.js:782
msgid "Units"
msgstr "单位"
-#: company/models.py:435
+#: company/models.py:369
msgid "Parameter units"
msgstr "参数单位"
-#: company/models.py:507
+#: company/models.py:445
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:550 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:87 order/models.py:310
+#: company/models.py:487 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:87 order/models.py:303
#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265
#: stock/templates/stock/item_base.html:229
#: templates/js/translated/company.js:254
@@ -2732,67 +2750,67 @@ msgstr ""
msgid "Supplier"
msgstr "供应商"
-#: company/models.py:551 templates/js/translated/part.js:217
+#: company/models.py:488 templates/js/translated/part.js:217
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:556 company/templates/company/supplier_part.html:97
+#: company/models.py:493 company/templates/company/supplier_part.html:97
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:253
#: templates/js/translated/order.js:1894 templates/js/translated/part.js:227
#: templates/js/translated/part.js:942
msgid "SKU"
msgstr ""
-#: company/models.py:557 templates/js/translated/part.js:228
+#: company/models.py:494 templates/js/translated/part.js:228
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:564
+#: company/models.py:501
msgid "Select manufacturer part"
msgstr "选择制造商商品"
-#: company/models.py:570
+#: company/models.py:507
msgid "URL for external supplier part link"
msgstr "外部供货商商品链接URL"
-#: company/models.py:576
+#: company/models.py:513
msgid "Supplier part description"
msgstr "供应商商品描述"
-#: company/models.py:581 company/templates/company/supplier_part.html:125
-#: part/models.py:2788 part/templates/part/upload_bom.html:59
+#: company/models.py:518 company/templates/company/supplier_part.html:125
+#: part/models.py:2571 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
-#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:398
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:387
msgid "Note"
msgstr "备注"
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "base cost"
msgstr ""
-#: company/models.py:585 part/models.py:1858
+#: company/models.py:522 part/models.py:1688
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
-#: company/models.py:587 company/templates/company/supplier_part.html:118
-#: stock/models.py:631 stock/templates/stock/item_base.html:245
+#: company/models.py:524 company/templates/company/supplier_part.html:118
+#: stock/models.py:608 stock/templates/stock/item_base.html:245
#: templates/js/translated/company.js:967 templates/js/translated/stock.js:1912
msgid "Packaging"
msgstr "打包"
-#: company/models.py:587
+#: company/models.py:524
msgid "Part packaging"
msgstr "商品打包"
-#: company/models.py:589 part/models.py:1860
+#: company/models.py:526 part/models.py:1690
msgid "multiple"
msgstr ""
-#: company/models.py:589
+#: company/models.py:526
msgid "Order multiple"
msgstr ""
-#: company/models.py:713
+#: company/models.py:649
msgid "last updated"
msgstr ""
@@ -2847,9 +2865,9 @@ msgstr "上传新图片"
msgid "Download image from URL"
msgstr "从 URL 下载图片"
-#: company/templates/company/company_base.html:86 order/models.py:658
-#: order/templates/order/sales_order_base.html:116 stock/models.py:650
-#: stock/models.py:651 stock/serializers.py:714
+#: company/templates/company/company_base.html:86 order/models.py:649
+#: order/templates/order/sales_order_base.html:116 stock/models.py:627
+#: stock/models.py:628 stock/serializers.py:716
#: stock/templates/stock/item_base.html:401
#: templates/js/translated/company.js:385 templates/js/translated/order.js:2458
#: templates/js/translated/stock.js:2431
@@ -2872,7 +2890,7 @@ msgstr "上传图片"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118
+#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170
msgid "Supplier Parts"
msgstr "供应商商品"
@@ -2903,6 +2921,7 @@ msgid "Delete Parts"
msgstr "删除商品"
#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: templates/js/translated/search.js:183
msgid "Manufacturer Parts"
msgstr "制造商商品"
@@ -2927,8 +2946,8 @@ msgstr "供货商库存"
#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/search.js:235 templates/navbar.html:50
-#: users/models.py:43
+#: templates/js/translated/search.js:275 templates/navbar.html:50
+#: users/models.py:41
msgid "Purchase Orders"
msgstr "采购订单"
@@ -2950,8 +2969,8 @@ msgstr "新建采购订单"
#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
#: templates/InvenTree/settings/sidebar.html:49
-#: templates/js/translated/search.js:259 templates/navbar.html:61
-#: users/models.py:44
+#: templates/js/translated/search.js:299 templates/navbar.html:61
+#: users/models.py:42
msgid "Sales Orders"
msgstr "销售订单"
@@ -2978,7 +2997,7 @@ msgstr "公司备注"
msgid "Supplier List"
msgstr "供应商列表"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:47
+#: company/templates/company/manufacturer_part.html:15 company/views.py:45
#: part/templates/part/prices.html:170 templates/InvenTree/search.html:179
#: templates/navbar.html:49
msgid "Manufacturers"
@@ -3011,7 +3030,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:41
+#: company/templates/company/supplier_part.html:15 company/views.py:39
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166
#: templates/InvenTree/search.html:189 templates/navbar.html:48
msgid "Suppliers"
@@ -3026,7 +3045,7 @@ msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:364 part/templates/part/detail.html:394
#: templates/js/translated/forms.js:439 templates/js/translated/helpers.js:32
-#: users/models.py:220
+#: users/models.py:219
msgid "Delete"
msgstr "删除"
@@ -3070,7 +3089,7 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:615
+#: company/templates/company/supplier_part.html:24 stock/models.py:592
#: stock/templates/stock/item_base.html:238
#: templates/js/translated/company.js:907 templates/js/translated/order.js:884
#: templates/js/translated/stock.js:1869
@@ -3188,180 +3207,180 @@ msgstr "定价"
#: stock/templates/stock/location.html:161
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:183
-#: templates/js/translated/stock.js:2307 users/models.py:41
+#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
+#: templates/js/translated/stock.js:2307 users/models.py:39
msgid "Stock Items"
msgstr "库存项"
-#: company/views.py:42
+#: company/views.py:40
msgid "New Supplier"
msgstr "新增供应商"
-#: company/views.py:48
+#: company/views.py:46
msgid "New Manufacturer"
msgstr "新建制造商"
-#: company/views.py:53 templates/InvenTree/search.html:209
+#: company/views.py:51 templates/InvenTree/search.html:209
#: templates/navbar.html:60
msgid "Customers"
msgstr "客户信息"
-#: company/views.py:54
+#: company/views.py:52
msgid "New Customer"
msgstr "新建客户"
-#: company/views.py:61 templates/js/translated/search.js:212
+#: company/views.py:59 templates/js/translated/search.js:252
msgid "Companies"
msgstr "公司"
-#: company/views.py:62
+#: company/views.py:60
msgid "New Company"
msgstr "新建公司信息"
-#: company/views.py:121 part/views.py:579
+#: company/views.py:112 part/views.py:579
msgid "Download Image"
msgstr "下载图片"
-#: company/views.py:150 part/views.py:611
+#: company/views.py:139 part/views.py:609
msgid "Image size exceeds maximum allowable size for download"
msgstr "图像大小超过下载允许的最大尺寸"
-#: company/views.py:157 part/views.py:618
+#: company/views.py:146 part/views.py:616
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "无效响应: {code}"
-#: company/views.py:166 part/views.py:627
+#: company/views.py:155 part/views.py:625
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
-#: label/models.py:105
+#: label/models.py:102
msgid "Label name"
msgstr "标签名称"
-#: label/models.py:112
+#: label/models.py:109
msgid "Label description"
msgstr "标签说明"
-#: label/models.py:119
+#: label/models.py:116
msgid "Label"
msgstr "标签"
-#: label/models.py:120
+#: label/models.py:117
msgid "Label template file"
msgstr "标签模板文件"
-#: label/models.py:126 report/models.py:286
+#: label/models.py:123 report/models.py:253
msgid "Enabled"
msgstr "已启用"
-#: label/models.py:127
+#: label/models.py:124
msgid "Label template is enabled"
msgstr "标签模板已启用"
-#: label/models.py:132
+#: label/models.py:129
msgid "Width [mm]"
msgstr "宽度 [mm]"
-#: label/models.py:133
+#: label/models.py:130
msgid "Label width, specified in mm"
msgstr "标注宽度,以毫米为单位。"
-#: label/models.py:139
+#: label/models.py:136
msgid "Height [mm]"
msgstr "高度 [mm]"
-#: label/models.py:140
+#: label/models.py:137
msgid "Label height, specified in mm"
msgstr "标注高度,以毫米为单位。"
-#: label/models.py:146 report/models.py:279
+#: label/models.py:143 report/models.py:246
msgid "Filename Pattern"
msgstr "文件名样式"
-#: label/models.py:147
+#: label/models.py:144
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:250
+#: label/models.py:233
msgid "Query filters (comma-separated list of key=value pairs),"
msgstr "查询筛选器 (逗号分隔的键值对列表)"
-#: label/models.py:251 label/models.py:295 label/models.py:327
-#: report/models.py:310 report/models.py:447 report/models.py:486
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:279 report/models.py:410 report/models.py:449
msgid "Filters"
msgstr "筛选器"
-#: label/models.py:294
+#: label/models.py:273
msgid "Query filters (comma-separated list of key=value pairs"
msgstr "查询筛选器 (逗号分隔的键值对列表"
-#: label/models.py:326
+#: label/models.py:301
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr "商品查询筛选器 (逗号分隔的键值对列表)"
-#: order/models.py:137
+#: order/models.py:133
msgid "Order description"
msgstr ""
-#: order/models.py:139 order/models.py:1274
+#: order/models.py:135 order/models.py:1236
msgid "Link to external page"
msgstr ""
-#: order/models.py:147
+#: order/models.py:143
msgid "Created By"
msgstr ""
-#: order/models.py:154
+#: order/models.py:150
msgid "User or group responsible for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:159
+#: order/models.py:155
msgid "Order notes"
msgstr ""
-#: order/models.py:296 order/models.py:648
+#: order/models.py:289 order/models.py:639
msgid "Order reference"
msgstr ""
-#: order/models.py:301 order/models.py:663
+#: order/models.py:294 order/models.py:654
msgid "Purchase order status"
msgstr ""
-#: order/models.py:311
+#: order/models.py:304
msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
-#: order/models.py:314 order/templates/order/order_base.html:124
+#: order/models.py:307 order/templates/order/order_base.html:124
#: templates/js/translated/order.js:1652
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:314
+#: order/models.py:307
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:321
+#: order/models.py:314
msgid "received by"
msgstr ""
-#: order/models.py:326
+#: order/models.py:319
msgid "Issue Date"
msgstr ""
-#: order/models.py:327
+#: order/models.py:320
msgid "Date order was issued"
msgstr ""
-#: order/models.py:332
+#: order/models.py:325
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:333
+#: order/models.py:326
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:339
+#: order/models.py:332
msgid "Date order was completed"
msgstr ""
@@ -3369,94 +3388,94 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:514
+#: order/models.py:512
msgid "Quantity must be a positive number"
msgstr "数量必须大于0"
-#: order/models.py:659
+#: order/models.py:650
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer Reference "
msgstr ""
-#: order/models.py:665
+#: order/models.py:656
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:670
+#: order/models.py:661
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:673 order/models.py:1228
+#: order/models.py:664 order/models.py:1190
#: templates/js/translated/order.js:2505 templates/js/translated/order.js:2656
msgid "Shipment Date"
msgstr ""
-#: order/models.py:680
+#: order/models.py:671
msgid "shipped by"
msgstr ""
-#: order/models.py:746
+#: order/models.py:726
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:750
+#: order/models.py:730
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:753
+#: order/models.py:733
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:756
+#: order/models.py:736
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:936
+#: order/models.py:910
msgid "Item quantity"
msgstr ""
-#: order/models.py:942
+#: order/models.py:916
msgid "Line item reference"
msgstr ""
-#: order/models.py:944
+#: order/models.py:918
msgid "Line item notes"
msgstr ""
-#: order/models.py:949
+#: order/models.py:923
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:967
+#: order/models.py:941
msgid "Context"
msgstr ""
-#: order/models.py:968
+#: order/models.py:942
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:976
+#: order/models.py:950
msgid "Unit price"
msgstr ""
-#: order/models.py:1009
+#: order/models.py:980
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1016
+#: order/models.py:988
msgid "deleted"
msgstr ""
-#: order/models.py:1022 order/models.py:1104 order/models.py:1126
-#: order/models.py:1222 order/models.py:1357
+#: order/models.py:994 order/models.py:1074 order/models.py:1099
+#: order/models.py:1184 order/models.py:1320
#: templates/js/translated/order.js:3112
msgid "Order"
msgstr ""
-#: order/models.py:1023 order/models.py:1104
+#: order/models.py:995 order/models.py:1074
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
@@ -3467,182 +3486,182 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1042
+#: order/models.py:1013
msgid "Supplier part"
msgstr "供应商商品"
-#: order/models.py:1049 order/templates/order/order_base.html:169
+#: order/models.py:1020 order/templates/order/order_base.html:169
#: templates/js/translated/order.js:1318 templates/js/translated/order.js:2009
#: templates/js/translated/part.js:993 templates/js/translated/part.js:1020
#: templates/js/translated/table_filters.js:330
msgid "Received"
msgstr ""
-#: order/models.py:1050
+#: order/models.py:1021
msgid "Number of items received"
msgstr ""
-#: order/models.py:1057 part/templates/part/prices.html:179 stock/models.py:745
-#: stock/serializers.py:159 stock/templates/stock/item_base.html:191
+#: order/models.py:1028 part/templates/part/prices.html:179 stock/models.py:722
+#: stock/serializers.py:153 stock/templates/stock/item_base.html:191
#: templates/js/translated/stock.js:1900
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:1058
+#: order/models.py:1029
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1066
+#: order/models.py:1037
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1136 part/templates/part/part_pricing.html:112
+#: order/models.py:1109 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:119 part/templates/part/prices.html:288
msgid "Sale Price"
msgstr "销售价格"
-#: order/models.py:1137
+#: order/models.py:1110
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1142
+#: order/models.py:1115
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1229
+#: order/models.py:1191
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1236
+#: order/models.py:1198
msgid "Checked By"
msgstr ""
-#: order/models.py:1237
+#: order/models.py:1199
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1245
+#: order/models.py:1207
msgid "Shipment number"
msgstr ""
-#: order/models.py:1252
+#: order/models.py:1214
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1259
+#: order/models.py:1221
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1260
+#: order/models.py:1222
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1267
+#: order/models.py:1229
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1268
+#: order/models.py:1230
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1285
+#: order/models.py:1248
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1251
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1395 order/models.py:1397
+#: order/models.py:1354 order/models.py:1356
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1401
+#: order/models.py:1360
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1403
+#: order/models.py:1362
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1365
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1410
+#: order/models.py:1369
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1416 order/serializers.py:1008
+#: order/models.py:1375 order/serializers.py:1045
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1378
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1379
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1387
msgid "Line"
msgstr ""
-#: order/models.py:1436 order/serializers.py:1118 order/serializers.py:1246
+#: order/models.py:1395 order/serializers.py:1149 order/serializers.py:1273
#: templates/js/translated/model_renderers.js:301
msgid "Shipment"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1396
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1449 templates/InvenTree/notifications/notifications.html:70
+#: order/models.py:1408 templates/InvenTree/notifications/notifications.html:70
msgid "Item"
msgstr ""
-#: order/models.py:1450
+#: order/models.py:1409
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1412
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:69
+#: order/serializers.py:68
msgid "Price currency"
msgstr ""
-#: order/serializers.py:198
+#: order/serializers.py:192
msgid "Order cannot be cancelled"
msgstr "无法取消订单"
-#: order/serializers.py:296
+#: order/serializers.py:287
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:320
+#: order/serializers.py:311
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:334
+#: order/serializers.py:330
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:339
+#: order/serializers.py:335
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:345
+#: order/serializers.py:341
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:346
+#: order/serializers.py:342
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:406 order/serializers.py:1083
+#: order/serializers.py:406 order/serializers.py:1117
msgid "Line Item"
msgstr ""
@@ -3650,7 +3669,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:422 order/serializers.py:527
+#: order/serializers.py:422 order/serializers.py:526
msgid "Select destination location for received items"
msgstr ""
@@ -3670,59 +3689,59 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:477
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:499
+#: order/serializers.py:500
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:539
+#: order/serializers.py:542
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:556
+#: order/serializers.py:559
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:570
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:842
+#: order/serializers.py:866
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:917
+#: order/serializers.py:947
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:973 order/serializers.py:1095
+#: order/serializers.py:1006 order/serializers.py:1126
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:995
+#: order/serializers.py:1028
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1108
+#: order/serializers.py:1139
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1132 order/serializers.py:1257
+#: order/serializers.py:1161 order/serializers.py:1281
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1135 order/serializers.py:1260
+#: order/serializers.py:1164 order/serializers.py:1284
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1187
+#: order/serializers.py:1214
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1197
+#: order/serializers.py:1224
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3970,7 +3989,8 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:70
-#: templates/js/translated/bom.js:1053 templates/js/translated/build.js:1880
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1053
+#: templates/js/translated/build.js:1880
msgid "Actions"
msgstr ""
@@ -3978,201 +3998,202 @@ msgstr ""
msgid "New Shipment"
msgstr ""
-#: order/views.py:117
+#: order/views.py:104
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:390
+#: order/views.py:377
msgid "Sales order not found"
msgstr ""
-#: order/views.py:396
+#: order/views.py:383
msgid "Price not found"
msgstr ""
-#: order/views.py:399
+#: order/views.py:386
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:404
+#: order/views.py:391
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:504
+#: part/api.py:474
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:524
+#: part/api.py:494
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:542
+#: part/api.py:512
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:544
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:665
+#: part/api.py:630
msgid "Valid"
msgstr ""
-#: part/api.py:666
+#: part/api.py:631
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:671
+#: part/api.py:637
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1043
+#: part/api.py:1003
msgid "Must be greater than zero"
msgstr "必须大于0"
-#: part/api.py:1047
+#: part/api.py:1007
msgid "Must be a valid quantity"
msgstr "必须是有效的数量"
-#: part/api.py:1062
+#: part/api.py:1022
msgid "Specify location for initial part stock"
msgstr "指定初始初始商品仓储地点"
-#: part/api.py:1093 part/api.py:1097 part/api.py:1112 part/api.py:1116
+#: part/api.py:1053 part/api.py:1057 part/api.py:1072 part/api.py:1076
msgid "This field is required"
msgstr "此字段为必填"
-#: part/bom.py:125 part/models.py:99 part/models.py:874
+#: part/bom.py:127 part/models.py:98 part/models.py:814
#: part/templates/part/category.html:108 part/templates/part/part_base.html:330
msgid "Default Location"
msgstr "默认仓储地点"
-#: part/bom.py:126 templates/email/low_stock_notification.html:17
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/bom.py:127 part/templates/part/part_base.html:189
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3543
msgid "Available Stock"
msgstr "可用库存"
-#: part/bom.py:128 part/templates/part/part_base.html:207
+#: part/bom.py:130 part/templates/part/part_base.html:207
#: templates/js/translated/part.js:517 templates/js/translated/part.js:537
#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1401
#: templates/js/translated/part.js:1417
msgid "On Order"
msgstr ""
-#: part/forms.py:79
+#: part/forms.py:60
msgid "Select part category"
msgstr "选择类别"
-#: part/forms.py:98
+#: part/forms.py:80
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:102
+#: part/forms.py:84
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:105
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:100
+#: part/models.py:99
msgid "Default location for parts in this category"
msgstr "此类别商品的默认仓储地点"
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords"
msgstr ""
-#: part/models.py:103
+#: part/models.py:102
msgid "Default keywords for parts in this category"
msgstr "此类别商品的默认关键字"
-#: part/models.py:113 part/models.py:2625 part/templates/part/category.html:15
+#: part/models.py:115 part/models.py:2413 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
-#: part/models.py:114 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:158
-#: users/models.py:38
+#: part/models.py:116 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198
+#: users/models.py:36
msgid "Part Categories"
msgstr "商品类别"
-#: part/models.py:355 part/templates/part/cat_link.html:3
+#: part/models.py:337 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:39
#: templates/js/translated/part.js:1768 templates/js/translated/search.js:144
-#: templates/navbar.html:24 users/models.py:39
+#: templates/navbar.html:24 users/models.py:37
msgid "Parts"
msgstr "商品"
-#: part/models.py:447
+#: part/models.py:422
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:522 part/models.py:534
+#: part/models.py:492 part/models.py:504
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:664
+#: part/models.py:621
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:668
+#: part/models.py:625
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:673
+#: part/models.py:630
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:769
+#: part/models.py:711
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:798 part/models.py:2678
+#: part/models.py:738 part/models.py:2467
msgid "Part name"
msgstr "商品名称"
-#: part/models.py:805
+#: part/models.py:745
msgid "Is Template"
msgstr ""
-#: part/models.py:806
+#: part/models.py:746
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:816
+#: part/models.py:756
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:817
+#: part/models.py:757
msgid "Variant Of"
msgstr ""
-#: part/models.py:823
+#: part/models.py:763
msgid "Part description"
msgstr "商品描述"
-#: part/models.py:828 part/templates/part/category.html:86
+#: part/models.py:768 part/templates/part/category.html:86
#: part/templates/part/part_base.html:294
msgid "Keywords"
msgstr "关键词"
-#: part/models.py:829
+#: part/models.py:769
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:836 part/models.py:2375 part/models.py:2624
+#: part/models.py:776 part/models.py:2171 part/models.py:2412
#: part/templates/part/part_base.html:257
#: part/templates/part/set_category.html:15
#: templates/InvenTree/notifications/notifications.html:65
@@ -4181,432 +4202,432 @@ msgstr "提高搜索结果可见性的关键字"
msgid "Category"
msgstr "类别"
-#: part/models.py:837
+#: part/models.py:777
msgid "Part category"
msgstr "商品类别"
-#: part/models.py:842 part/templates/part/part_base.html:266
+#: part/models.py:782 part/templates/part/part_base.html:266
#: templates/js/translated/part.js:666 templates/js/translated/part.js:1322
#: templates/js/translated/stock.js:1659
msgid "IPN"
msgstr ""
-#: part/models.py:843
+#: part/models.py:783
msgid "Internal Part Number"
msgstr "内部商品编号"
-#: part/models.py:849
+#: part/models.py:789
msgid "Part revision or version number"
msgstr "商品版本号"
-#: part/models.py:850 part/templates/part/part_base.html:273
-#: report/models.py:188 templates/js/translated/part.js:670
+#: part/models.py:790 part/templates/part/part_base.html:273
+#: report/models.py:170 templates/js/translated/part.js:670
msgid "Revision"
msgstr ""
-#: part/models.py:872
+#: part/models.py:812
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:919 part/templates/part/part_base.html:339
+#: part/models.py:857 part/templates/part/part_base.html:339
msgid "Default Supplier"
msgstr ""
-#: part/models.py:920
+#: part/models.py:858
msgid "Default supplier part"
msgstr "默认供应商商品"
-#: part/models.py:927
+#: part/models.py:865
msgid "Default Expiry"
msgstr ""
-#: part/models.py:928
+#: part/models.py:866
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:933 part/templates/part/part_base.html:200
+#: part/models.py:871 part/templates/part/part_base.html:200
msgid "Minimum Stock"
msgstr "最低库存"
-#: part/models.py:934
+#: part/models.py:872
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:941
+#: part/models.py:879
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:947
+#: part/models.py:885
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:953
+#: part/models.py:891
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:959
+#: part/models.py:897
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:902
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:969
+#: part/models.py:907
msgid "Can this part be sold to customers?"
msgstr "此商品可以销售给客户吗?"
-#: part/models.py:974
+#: part/models.py:912
msgid "Is this part active?"
msgstr ""
-#: part/models.py:979
+#: part/models.py:917
msgid "Is this a virtual part, such as a software product or license?"
msgstr "这是一个虚拟商品,如软件产品或许可证吗?"
-#: part/models.py:984
+#: part/models.py:922
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "BOM checksum"
msgstr ""
-#: part/models.py:987
+#: part/models.py:925
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:990
+#: part/models.py:928
msgid "BOM checked by"
msgstr ""
-#: part/models.py:992
+#: part/models.py:930
msgid "BOM checked date"
msgstr ""
-#: part/models.py:996
+#: part/models.py:934
msgid "Creation User"
msgstr "新建用户"
-#: part/models.py:1860
+#: part/models.py:1690
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2218
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2442
+#: part/models.py:2235
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2462 templates/js/translated/part.js:1819
+#: part/models.py:2255 templates/js/translated/part.js:1819
#: templates/js/translated/stock.js:1274
msgid "Test Name"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2256
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2468
+#: part/models.py:2261
msgid "Test Description"
msgstr ""
-#: part/models.py:2469
+#: part/models.py:2262
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2474 templates/js/translated/part.js:1828
+#: part/models.py:2267 templates/js/translated/part.js:1828
#: templates/js/translated/table_filters.js:294
msgid "Required"
msgstr ""
-#: part/models.py:2475
+#: part/models.py:2268
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2480 templates/js/translated/part.js:1836
+#: part/models.py:2273 templates/js/translated/part.js:1836
msgid "Requires Value"
msgstr ""
-#: part/models.py:2481
+#: part/models.py:2274
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2486 templates/js/translated/part.js:1843
+#: part/models.py:2279 templates/js/translated/part.js:1843
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2487
+#: part/models.py:2280
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2288
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2534
+#: part/models.py:2324
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2542
+#: part/models.py:2332
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2549
+#: part/models.py:2339
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2579
+#: part/models.py:2370
msgid "Parent Part"
msgstr ""
-#: part/models.py:2581 part/models.py:2630 part/models.py:2631
+#: part/models.py:2372 part/models.py:2418 part/models.py:2419
#: templates/InvenTree/settings/settings.html:226
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Data"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2374
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2635 templates/InvenTree/settings/settings.html:235
+#: part/models.py:2423 templates/InvenTree/settings/settings.html:235
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:2636
+#: part/models.py:2424
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2670
+#: part/models.py:2459
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2673 templates/js/translated/model_renderers.js:200
+#: part/models.py:2462 templates/js/translated/model_renderers.js:200
msgid "Part ID"
msgstr "商品ID"
-#: part/models.py:2674
+#: part/models.py:2463
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2677
+#: part/models.py:2466
msgid "Part Name"
msgstr ""
-#: part/models.py:2681
+#: part/models.py:2470
msgid "Part IPN"
msgstr ""
-#: part/models.py:2682
+#: part/models.py:2471
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2685
+#: part/models.py:2474
msgid "Level"
msgstr ""
-#: part/models.py:2686
+#: part/models.py:2475
msgid "BOM level"
msgstr ""
-#: part/models.py:2761
+#: part/models.py:2544
msgid "Select parent part"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2552
msgid "Sub part"
msgstr ""
-#: part/models.py:2770
+#: part/models.py:2553
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2776
+#: part/models.py:2559
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2778 part/templates/part/upload_bom.html:58
+#: part/models.py:2561 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:877 templates/js/translated/bom.js:971
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "可选项"
-#: part/models.py:2778
+#: part/models.py:2561
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2781 part/templates/part/upload_bom.html:55
+#: part/models.py:2564 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2782
+#: part/models.py:2565
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2785
+#: part/models.py:2568
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2788
+#: part/models.py:2571
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "Checksum"
msgstr ""
-#: part/models.py:2790
+#: part/models.py:2573
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2794 part/templates/part/upload_bom.html:57
+#: part/models.py:2577 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:988
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "继承项"
-#: part/models.py:2795
+#: part/models.py:2578
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2800 part/templates/part/upload_bom.html:56
+#: part/models.py:2583 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:980
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2801
+#: part/models.py:2584
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2886 stock/models.py:486
+#: part/models.py:2662 stock/models.py:460
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2895 part/models.py:2897
+#: part/models.py:2671 part/models.py:2673
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3009
+#: part/models.py:2778
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3031
+#: part/models.py:2799
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3043
+#: part/models.py:2812
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:2820
msgid "Substitute part"
msgstr ""
-#: part/models.py:3062
+#: part/models.py:2831
msgid "Part 1"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Part 2"
msgstr ""
-#: part/models.py:3066
+#: part/models.py:2835
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3098
+#: part/models.py:2866
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:152 part/serializers.py:184 stock/serializers.py:169
+#: part/serializers.py:138 part/serializers.py:169 stock/serializers.py:163
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:918
+#: part/serializers.py:794
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:802
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:930
+#: part/serializers.py:803
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:935
+#: part/serializers.py:808
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:936
+#: part/serializers.py:809
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:814
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:815
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:947
+#: part/serializers.py:820
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:821
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:861
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:993
+#: part/serializers.py:862
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1020
+#: part/serializers.py:892
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1063
+#: part/serializers.py:935
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1066
+#: part/serializers.py:938
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1069
+#: part/serializers.py:941
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:950
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1086
+#: part/serializers.py:958
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1105
+#: part/serializers.py:979
msgid "At least one BOM item is required"
msgstr ""
-#: part/tasks.py:14
+#: part/tasks.py:21
msgid "Low stock notification"
msgstr ""
-#: part/tasks.py:15
+#: part/tasks.py:22
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@@ -5091,7 +5112,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:194 templates/js/translated/order.js:3543
+#: part/templates/part/part_base.html:194
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5384,20 +5405,20 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:186
+#: part/templatetags/inventree_extras.py:158
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:223
+#: part/templatetags/inventree_extras.py:193
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:74
+#: part/views.py:77
msgid "Set Part Category"
msgstr "设置商品类别"
-#: part/views.py:124
+#: part/views.py:125
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "为 {n} 个商品设置类别"
@@ -5410,79 +5431,79 @@ msgstr ""
msgid "None"
msgstr ""
-#: part/views.py:556
+#: part/views.py:559
msgid "Part QR Code"
msgstr "商品二维码"
-#: part/views.py:658
+#: part/views.py:653
msgid "Select Part Image"
msgstr "选择商品图像"
-#: part/views.py:684
+#: part/views.py:679
msgid "Updated part image"
msgstr "更新商品图像"
-#: part/views.py:687
+#: part/views.py:682
msgid "Part image not found"
msgstr "未找到商品图像"
-#: part/views.py:775
+#: part/views.py:771
msgid "Confirm Part Deletion"
msgstr "确认删除商品"
-#: part/views.py:782
+#: part/views.py:779
msgid "Part was deleted"
msgstr "商品已删除"
-#: part/views.py:791
+#: part/views.py:788
msgid "Part Pricing"
msgstr "商品价格"
-#: part/views.py:940
+#: part/views.py:938
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:950
+#: part/views.py:946
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:957
+#: part/views.py:953
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:999
+#: part/views.py:1002
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: part/views.py:1005
+#: part/views.py:1009
msgid "Part category was deleted"
msgstr "商品类别已删除"
-#: part/views.py:1014
+#: part/views.py:1018
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: part/views.py:1115
+#: part/views.py:1118
msgid "Edit Category Parameter Template"
msgstr "编辑类别参数模板"
-#: part/views.py:1171
+#: part/views.py:1179
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: plugin/apps.py:48
+#: plugin/apps.py:56
msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details."
msgstr ""
-#: plugin/base/action/api.py:28
+#: plugin/base/action/api.py:27
msgid "No action specified"
msgstr "未指定操作"
-#: plugin/base/action/api.py:39
+#: plugin/base/action/api.py:38
msgid "No matching action found"
msgstr "未找到指定操作"
-#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:152
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
msgid "Must provide barcode_data parameter"
msgstr "必须提供条码数据参数"
@@ -5494,31 +5515,31 @@ msgstr "未找到匹配条形码数据"
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: plugin/base/barcodes/api.py:155
+#: plugin/base/barcodes/api.py:157
msgid "Must provide stockitem parameter"
msgstr "必须提供库存项参数"
-#: plugin/base/barcodes/api.py:162
+#: plugin/base/barcodes/api.py:164
msgid "No matching stock item found"
msgstr "未找到匹配的库存项"
-#: plugin/base/barcodes/api.py:192
+#: plugin/base/barcodes/api.py:194
msgid "Barcode already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:196
+#: plugin/base/barcodes/api.py:198
msgid "Barcode already matches Stock Location"
msgstr ""
-#: plugin/base/barcodes/api.py:200
+#: plugin/base/barcodes/api.py:202
msgid "Barcode already matches Part"
msgstr ""
-#: plugin/base/barcodes/api.py:206 plugin/base/barcodes/api.py:218
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: plugin/base/barcodes/api.py:224
+#: plugin/base/barcodes/api.py:226
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -5526,226 +5547,226 @@ msgstr ""
msgid "Label printing failed"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:24
+#: plugin/builtin/integration/core_notifications.py:28
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:25
+#: plugin/builtin/integration/core_notifications.py:29
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:29
-#: plugin/builtin/integration/core_notifications.py:46
+#: plugin/builtin/integration/core_notifications.py:33
+#: plugin/builtin/integration/core_notifications.py:52
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
-#: plugin/builtin/integration/core_notifications.py:47
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
msgid "Allow sending of emails for event notifications"
msgstr ""
-#: plugin/models.py:35
+#: plugin/models.py:32
msgid "Plugin Metadata"
msgstr ""
-#: plugin/models.py:36
+#: plugin/models.py:33
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: plugin/models.py:85
+#: plugin/models.py:79
msgid "Plugin Configuration"
msgstr ""
-#: plugin/models.py:86
+#: plugin/models.py:80
msgid "Plugin Configurations"
msgstr ""
-#: plugin/models.py:91
+#: plugin/models.py:85
msgid "Key"
msgstr ""
-#: plugin/models.py:92
+#: plugin/models.py:86
msgid "Key of plugin"
msgstr ""
-#: plugin/models.py:100
+#: plugin/models.py:94
msgid "PluginName of the plugin"
msgstr ""
-#: plugin/models.py:106
+#: plugin/models.py:100
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:179
+#: plugin/models.py:168
msgid "Plugin"
msgstr ""
-#: plugin/models.py:253
+#: plugin/models.py:231
msgid "Method"
msgstr ""
-#: plugin/plugin.py:246
+#: plugin/plugin.py:214
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:260
+#: plugin/plugin.py:226
msgid "No date found"
msgstr ""
-#: plugin/samples/integration/sample.py:42
+#: plugin/samples/integration/sample.py:39
msgid "Enable PO"
msgstr ""
-#: plugin/samples/integration/sample.py:43
+#: plugin/samples/integration/sample.py:40
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: plugin/samples/integration/sample.py:48
+#: plugin/samples/integration/sample.py:45
msgid "API Key"
msgstr ""
-#: plugin/samples/integration/sample.py:49
+#: plugin/samples/integration/sample.py:46
msgid "Key required for accessing external API"
msgstr ""
-#: plugin/samples/integration/sample.py:52
+#: plugin/samples/integration/sample.py:49
msgid "Numerical"
msgstr ""
-#: plugin/samples/integration/sample.py:53
+#: plugin/samples/integration/sample.py:50
msgid "A numerical setting"
msgstr ""
-#: plugin/samples/integration/sample.py:58
+#: plugin/samples/integration/sample.py:55
msgid "Choice Setting"
msgstr ""
-#: plugin/samples/integration/sample.py:59
+#: plugin/samples/integration/sample.py:56
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/serializers.py:74
+#: plugin/serializers.py:73
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:75
+#: plugin/serializers.py:74
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:80
+#: plugin/serializers.py:79
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:81
+#: plugin/serializers.py:80
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:84
+#: plugin/serializers.py:83
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:85
+#: plugin/serializers.py:84
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:100
+#: plugin/serializers.py:104
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:102
+#: plugin/serializers.py:106
msgid "Either packagename of URL must be provided"
msgstr ""
-#: report/api.py:191
+#: report/api.py:166
msgid "No valid objects provided to template"
msgstr "没有为模板提供有效对象"
-#: report/api.py:223 report/api.py:270
+#: report/api.py:198 report/api.py:239
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/models.py:170
+#: report/models.py:152
msgid "Template name"
msgstr ""
-#: report/models.py:176
+#: report/models.py:158
msgid "Report template file"
msgstr ""
-#: report/models.py:183
+#: report/models.py:165
msgid "Report template description"
msgstr ""
-#: report/models.py:189
+#: report/models.py:171
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:280
+#: report/models.py:247
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:287
+#: report/models.py:254
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:311
+#: report/models.py:280
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:319
+#: report/models.py:288
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:320
+#: report/models.py:289
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:370
+#: report/models.py:336
msgid "Build Filters"
msgstr ""
-#: report/models.py:371
+#: report/models.py:337
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:413
+#: report/models.py:376
msgid "Part Filters"
msgstr "商品过滤器"
-#: report/models.py:414
+#: report/models.py:377
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:448
+#: report/models.py:411
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:487
+#: report/models.py:450
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:542
+#: report/models.py:504
msgid "Snippet"
msgstr ""
-#: report/models.py:543
+#: report/models.py:505
msgid "Report snippet file"
msgstr ""
-#: report/models.py:547
+#: report/models.py:509
msgid "Snippet file description"
msgstr ""
-#: report/models.py:582
+#: report/models.py:546
msgid "Asset"
msgstr ""
-#: report/models.py:583
+#: report/models.py:547
msgid "Report asset file"
msgstr ""
-#: report/models.py:586
+#: report/models.py:550
msgid "Asset file description"
msgstr ""
@@ -5762,7 +5783,7 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:655 stock/templates/stock/item_base.html:322
+#: stock/models.py:632 stock/templates/stock/item_base.html:322
#: templates/js/translated/build.js:420 templates/js/translated/build.js:572
#: templates/js/translated/build.js:1173 templates/js/translated/build.js:1671
#: templates/js/translated/model_renderers.js:106
@@ -5776,12 +5797,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2183
+#: stock/models.py:2067
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2189
+#: stock/models.py:2073
msgid "Result"
msgstr ""
@@ -5811,362 +5832,362 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: stock/api.py:542
+#: stock/api.py:499
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:549
+#: stock/api.py:506
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:574
+#: stock/api.py:531
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:82 stock/models.py:750
+#: stock/models.py:83 stock/models.py:727
#: stock/templates/stock/item_base.html:252
msgid "Owner"
msgstr ""
-#: stock/models.py:83 stock/models.py:751
+#: stock/models.py:84 stock/models.py:728
msgid "Select Owner"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:435
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:477
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "商品类型 ('{pf}') 必须是 {pe}"
-#: stock/models.py:513 stock/models.py:522
+#: stock/models.py:487 stock/models.py:496
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:514
+#: stock/models.py:488
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:510
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:516
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:556
+#: stock/models.py:530
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:576
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:608
+#: stock/models.py:585
msgid "Base part"
msgstr ""
-#: stock/models.py:616
+#: stock/models.py:593
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:622 stock/templates/stock/location.html:17
+#: stock/models.py:599 stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "仓储地点"
-#: stock/models.py:625
+#: stock/models.py:602
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:609
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:638 stock/templates/stock/item_base.html:361
+#: stock/models.py:615 stock/templates/stock/item_base.html:361
msgid "Installed In"
msgstr ""
-#: stock/models.py:641
+#: stock/models.py:618
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:657
+#: stock/models.py:634
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:671
+#: stock/models.py:648
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:653
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:685
+#: stock/models.py:662
msgid "Source Build"
msgstr ""
-#: stock/models.py:687
+#: stock/models.py:664
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:675
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:701
+#: stock/models.py:678
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:707
+#: stock/models.py:684
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:713 stock/templates/stock/item_base.html:429
+#: stock/models.py:690 stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:1816
msgid "Expiry Date"
msgstr ""
-#: stock/models.py:714
+#: stock/models.py:691
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:704
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:737 stock/templates/stock/item.html:137
+#: stock/models.py:714 stock/templates/stock/item.html:137
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:746
+#: stock/models.py:723
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:778
+#: stock/models.py:751
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1298
+#: stock/models.py:1229
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1304
+#: stock/models.py:1235
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1310
+#: stock/models.py:1241
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1313
+#: stock/models.py:1244
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1316
+#: stock/models.py:1247
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1323
+#: stock/models.py:1254
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1394
+#: stock/models.py:1320
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1397
+#: stock/models.py:1323
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1400
+#: stock/models.py:1326
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1403
+#: stock/models.py:1329
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1406
+#: stock/models.py:1332
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1409
+#: stock/models.py:1335
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1416 stock/serializers.py:863
+#: stock/models.py:1342 stock/serializers.py:866
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1420
+#: stock/models.py:1346
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1424
+#: stock/models.py:1350
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1428
+#: stock/models.py:1354
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1600
+#: stock/models.py:1523
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2103
+#: stock/models.py:1985
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2160
+#: stock/models.py:2043
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2166
+#: stock/models.py:2049
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2184
+#: stock/models.py:2068
msgid "Test name"
msgstr ""
-#: stock/models.py:2190
+#: stock/models.py:2074
msgid "Test result"
msgstr ""
-#: stock/models.py:2196
+#: stock/models.py:2080
msgid "Test output value"
msgstr ""
-#: stock/models.py:2203
+#: stock/models.py:2087
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2209
+#: stock/models.py:2093
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:156
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:283
+#: stock/serializers.py:280
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:298
+#: stock/serializers.py:292
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:304
+#: stock/serializers.py:298
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:315 stock/serializers.py:820 stock/serializers.py:1061
+#: stock/serializers.py:309 stock/serializers.py:823 stock/serializers.py:1056
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:322
+#: stock/serializers.py:316
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:335
+#: stock/serializers.py:326
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:352
+#: stock/serializers.py:343
msgid "Serial numbers already exist"
msgstr "序列号已存在"
-#: stock/serializers.py:394
+#: stock/serializers.py:383
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:410
+#: stock/serializers.py:396
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:417
+#: stock/serializers.py:403
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:455
+#: stock/serializers.py:440
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:460
+#: stock/serializers.py:445
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:677
+#: stock/serializers.py:678
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:681
+#: stock/serializers.py:682
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:685
+#: stock/serializers.py:686
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:715
+#: stock/serializers.py:717
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:721
+#: stock/serializers.py:723
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:729
+#: stock/serializers.py:731
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:739 stock/serializers.py:969
+#: stock/serializers.py:741 stock/serializers.py:972
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:827
+#: stock/serializers.py:830
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:832
+#: stock/serializers.py:835
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:833
+#: stock/serializers.py:836
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:838
+#: stock/serializers.py:841
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:839
+#: stock/serializers.py:842
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:849
+#: stock/serializers.py:852
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:931
+#: stock/serializers.py:934
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:959
+#: stock/serializers.py:962
msgid "Stock transaction notes"
msgstr ""
@@ -6483,7 +6504,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165
-#: templates/js/translated/search.js:198 users/models.py:40
+#: templates/js/translated/search.js:238 users/models.py:38
msgid "Stock Locations"
msgstr "仓储地点"
@@ -6535,7 +6556,7 @@ msgstr ""
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:227
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:213
msgid "Convert Stock Item"
msgstr ""
@@ -6560,55 +6581,55 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:125
+#: stock/views.py:115
msgid "Stock Location QR code"
msgstr "仓储地点二维码"
-#: stock/views.py:144
+#: stock/views.py:132
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:153
+#: stock/views.py:141
msgid "Specify a valid location"
msgstr "指定一个有效仓储地点"
-#: stock/views.py:164
+#: stock/views.py:153
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:175
+#: stock/views.py:162
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:192
+#: stock/views.py:180
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:193
+#: stock/views.py:181
msgid "Check the confirmation box"
msgstr "选中确认框"
-#: stock/views.py:208
+#: stock/views.py:196
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:264
+#: stock/views.py:247
msgid "Delete Stock Location"
msgstr "删除仓储地点"
-#: stock/views.py:277
+#: stock/views.py:260
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:288
+#: stock/views.py:271
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:295
+#: stock/views.py:278
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:304
+#: stock/views.py:286
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6882,7 +6903,7 @@ msgid "Install Plugin"
msgstr ""
#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137
-#: users/models.py:37
+#: users/models.py:35
msgid "Admin"
msgstr "管理员"
@@ -7568,6 +7589,14 @@ msgstr ""
msgid "Add Attachment"
msgstr "添加附件"
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:110
+msgid "Delete Attachments"
+msgstr ""
+
#: templates/base.html:101
msgid "Server Restart Required"
msgstr ""
@@ -7704,31 +7733,27 @@ msgstr ""
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:78
+#: templates/js/translated/attachment.js:96
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:156
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:100
+#: templates/js/translated/attachment.js:180
msgid "Edit Attachment"
msgstr "编辑附件"
-#: templates/js/translated/attachment.js:110
-msgid "Confirm Delete"
-msgstr ""
-
-#: templates/js/translated/attachment.js:111
-msgid "Delete Attachment"
-msgstr "删除附件"
-
-#: templates/js/translated/attachment.js:167
+#: templates/js/translated/attachment.js:246
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:183
+#: templates/js/translated/attachment.js:262
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:190
+#: templates/js/translated/attachment.js:269
msgid "Delete attachment"
msgstr ""
@@ -7945,6 +7970,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:906 templates/js/translated/build.js:1814
+#: templates/js/translated/order.js:3562
msgid "No Stock Available"
msgstr ""
@@ -8173,20 +8199,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1808
+#: templates/js/translated/build.js:1808 templates/js/translated/order.js:3568
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1810
+#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3566
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1839 templates/js/translated/build.js:2084
-#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3553
+#: templates/js/translated/build.js:2657 templates/js/translated/order.js:3579
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3633
+#: templates/js/translated/build.js:1887 templates/js/translated/order.js:3659
msgid "Build stock"
msgstr ""
@@ -8194,7 +8220,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3626
+#: templates/js/translated/build.js:1894 templates/js/translated/order.js:3652
msgid "Allocate stock"
msgstr ""
@@ -8846,15 +8872,15 @@ msgstr ""
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3685
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:3711
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3707
+#: templates/js/translated/order.js:1800 templates/js/translated/order.js:3733
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3718
+#: templates/js/translated/order.js:1813 templates/js/translated/order.js:3744
msgid "Delete Line Item"
msgstr ""
@@ -8867,13 +8893,13 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2139
-#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3952
+#: templates/js/translated/order.js:3467 templates/js/translated/order.js:3978
#: templates/js/translated/part.js:1948 templates/js/translated/part.js:2301
msgid "Unit Price"
msgstr "单价"
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2155
-#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3968
+#: templates/js/translated/order.js:3483 templates/js/translated/order.js:3994
msgid "Total Price"
msgstr ""
@@ -8886,39 +8912,39 @@ msgstr ""
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3639
+#: templates/js/translated/order.js:2056 templates/js/translated/order.js:3665
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3640
+#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3666
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3644
+#: templates/js/translated/order.js:2058 templates/js/translated/order.js:3670
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4017
+#: templates/js/translated/order.js:2204 templates/js/translated/order.js:4043
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4018
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:4044
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4019
+#: templates/js/translated/order.js:2206 templates/js/translated/order.js:4045
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4049
+#: templates/js/translated/order.js:2236 templates/js/translated/order.js:4075
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4070
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:4096
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4081
+#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4107
msgid "Delete Line"
msgstr ""
@@ -9011,39 +9037,39 @@ msgstr ""
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:3649
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3629
+#: templates/js/translated/order.js:3655
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3636 templates/js/translated/order.js:3834
+#: templates/js/translated/order.js:3662 templates/js/translated/order.js:3860
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3648
+#: templates/js/translated/order.js:3674
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3651
+#: templates/js/translated/order.js:3677
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3733
+#: templates/js/translated/order.js:3759
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:3842
+#: templates/js/translated/order.js:3868
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:3856
+#: templates/js/translated/order.js:3882
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4092
+#: templates/js/translated/order.js:4118
msgid "No matching lines"
msgstr ""
@@ -9375,11 +9401,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/search.js:352
+#: templates/js/translated/search.js:392
msgid "Minimize results"
msgstr ""
-#: templates/js/translated/search.js:355
+#: templates/js/translated/search.js:395
msgid "Remove results"
msgstr ""
@@ -9515,7 +9541,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:887 users/models.py:216
+#: templates/js/translated/stock.js:887 users/models.py:215
msgid "Add"
msgstr "添加"
@@ -10250,51 +10276,51 @@ msgstr "用户"
msgid "Select which users are assigned to this group"
msgstr "选择分配给该组的用户"
-#: users/admin.py:184
+#: users/admin.py:191
msgid "The following users are members of multiple groups:"
msgstr "以下用户是多个群组的成员:"
-#: users/admin.py:207
+#: users/admin.py:214
msgid "Personal info"
msgstr "个人资料"
-#: users/admin.py:208
+#: users/admin.py:215
msgid "Permissions"
msgstr "权限"
-#: users/admin.py:211
+#: users/admin.py:218
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:203
+#: users/models.py:202
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:211
+#: users/models.py:210
msgid "Group"
msgstr "群组"
-#: users/models.py:214
+#: users/models.py:213
msgid "View"
msgstr "视图"
-#: users/models.py:214
+#: users/models.py:213
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:216
+#: users/models.py:215
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:218
+#: users/models.py:217
msgid "Change"
msgstr "更改"
-#: users/models.py:218
+#: users/models.py:217
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:220
+#: users/models.py:219
msgid "Permission to delete items"
msgstr "删除项目权限"
diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py
index cc427953a8..c955fa12d6 100644
--- a/InvenTree/stock/api.py
+++ b/InvenTree/stock/api.py
@@ -90,6 +90,8 @@ class StockMetadata(generics.RetrieveUpdateAPIView):
class StockItemContextMixin:
"""Mixin class for adding StockItem object to serializer context."""
+ queryset = StockItem.objects.none()
+
def get_serializer_context(self):
"""Extend serializer context."""
context = super().get_serializer_context()
@@ -106,7 +108,6 @@ class StockItemContextMixin:
class StockItemSerialize(StockItemContextMixin, generics.CreateAPIView):
"""API endpoint for serializing a stock item."""
- queryset = StockItem.objects.all()
serializer_class = StockSerializers.SerializeStockItemSerializer
@@ -118,21 +119,18 @@ class StockItemInstall(StockItemContextMixin, generics.CreateAPIView):
- stock_item must be serialized (and not belong to another item)
"""
- queryset = StockItem.objects.all()
serializer_class = StockSerializers.InstallStockItemSerializer
class StockItemUninstall(StockItemContextMixin, generics.CreateAPIView):
"""API endpoint for removing (uninstalling) items from this item."""
- queryset = StockItem.objects.all()
serializer_class = StockSerializers.UninstallStockItemSerializer
class StockItemReturn(StockItemContextMixin, generics.CreateAPIView):
"""API endpoint for returning a stock item from a customer"""
- queryset = StockItem.objects.all()
serializer_class = StockSerializers.ReturnStockItemSerializer