\n"
@@ -30,14 +30,14 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -73,41 +73,41 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -156,7 +156,7 @@ msgstr ""
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -173,23 +173,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr ""
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr ""
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr ""
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr ""
@@ -447,11 +447,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
@@ -464,11 +464,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -477,7 +477,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -487,8 +487,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -502,7 +502,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -535,7 +535,7 @@ msgstr ""
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr ""
@@ -545,10 +545,10 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -593,8 +593,8 @@ msgstr ""
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -604,12 +604,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
@@ -629,7 +629,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -644,8 +644,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -704,7 +704,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -712,16 +712,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -738,7 +738,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -755,30 +755,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr ""
@@ -811,11 +811,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -829,7 +829,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -842,7 +842,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -880,7 +880,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -894,8 +894,8 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -916,16 +916,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -978,7 +978,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1037,7 +1037,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1184,7 +1184,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1204,7 +1204,7 @@ msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1212,7 +1212,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr ""
@@ -1251,7 +1251,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr ""
@@ -1413,8 +1413,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr ""
@@ -1434,56 +1434,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1521,335 +1521,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
-msgid "IPN Regex"
+msgid "Barcode Support"
msgstr ""
#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1857,27 +1881,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1885,44 +1912,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1982,7 +2022,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2021,12 +2061,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2062,7 +2102,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2083,7 +2123,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2135,7 +2175,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2154,7 +2194,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2174,7 +2214,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2220,9 +2260,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2245,7 +2285,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2253,7 +2293,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2269,7 +2309,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2296,7 +2336,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2374,8 +2414,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2387,7 +2427,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2420,16 +2460,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2448,7 +2488,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2465,7 +2505,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2477,7 +2517,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2510,7 +2550,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2560,7 +2600,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2579,8 +2619,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2602,20 +2642,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2683,15 +2723,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2756,178 +2796,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2935,77 +2975,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3055,7 +3095,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3093,57 +3133,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3152,6 +3206,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3241,8 +3297,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3290,9 +3346,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3358,18 +3414,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3381,8 +3437,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3398,7 +3454,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3406,8 +3462,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3461,195 +3517,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3827,8 +3883,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3878,7 +3934,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4103,7 +4159,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4135,7 +4191,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4144,7 +4200,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4152,8 +4208,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4201,8 +4257,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4249,7 +4305,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4265,7 +4321,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4302,7 +4358,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4343,87 +4399,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4462,12 +4518,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4491,7 +4552,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4571,12 +4632,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4614,78 +4684,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4693,10 +4763,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4704,51 +4774,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4849,7 +4919,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4967,220 +5037,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5286,12 +5360,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5318,7 +5392,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5408,187 +5482,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5740,7 +5814,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6137,7 +6211,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6287,12 +6361,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6300,23 +6374,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6340,11 +6414,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6629,7 +6711,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6641,31 +6723,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6693,37 +6779,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 1bbb282835..7c9ad06f92 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-25 14:06\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -29,14 +29,14 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr "Ingrese la fecha"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr "Confirmar"
@@ -72,41 +72,41 @@ msgstr "Aplicar tema"
msgid "Select Category"
msgstr "Seleccionar Categoría"
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Grupo no válido: un {g}"
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr "Numeros de serie no encontrados"
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr ""
@@ -147,7 +147,7 @@ msgstr "Nombre"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr "Nombre"
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr "Turco"
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
@@ -463,11 +463,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -534,7 +534,7 @@ msgstr ""
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr "Unicación"
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr ""
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referencia"
@@ -628,7 +628,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -711,16 +711,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr "Notas"
@@ -810,11 +810,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -893,8 +893,8 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr "Número de serie"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr "Progreso"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr "Lote"
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1211,7 +1211,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr "Completados"
@@ -1250,7 +1250,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr "Detalles"
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr ""
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
-msgid "IPN Regex"
+msgid "Barcode Support"
msgstr ""
#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr "días"
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr "Opciones"
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr "Exportar"
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr "Eliminar"
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr "Fabricantes"
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 61f43d466b..44f96424bc 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -29,14 +29,14 @@ msgstr "Aucune action spécifiée"
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr "Entrer la date"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr "Confirmer"
@@ -72,41 +72,41 @@ msgstr "Appliquer le thème"
msgid "Select Category"
msgstr "Sélectionnez une catégorie"
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Groupe invalide : {g}"
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Numéro de série dupliqué: {g}"
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr "Pièce jointe"
@@ -147,7 +147,7 @@ msgstr "Nom"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr "Nom"
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr "Description (facultative)"
msgid "parent"
msgstr "parent"
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr "Turc"
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
@@ -463,11 +463,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -534,7 +534,7 @@ msgstr ""
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr ""
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr "Emplacement des pièces terminées"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr ""
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Référence"
@@ -628,7 +628,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -711,16 +711,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr "Notes"
@@ -810,11 +810,11 @@ msgstr "L'élément de construction doit spécifier une sortie de construction,
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'"
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -893,8 +893,8 @@ msgstr "Commander les pièces requises"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Commander des pièces"
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Pieces jointes"
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1211,7 +1211,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr ""
@@ -1250,7 +1250,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr "Détails"
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr "Disponible"
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr "Pièce jointe ajoutée"
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr "Sélectionner un fichier à téléverser"
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr "{name.title()} Fichier"
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
-msgstr "Télécharger depuis l'URL"
+msgid "Default Currency"
+msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
-msgstr ""
+msgid "Download from URL"
+msgstr "Télécharger depuis l'URL"
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:100
+#: common/models.py:107
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:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr "Autoriser les IPN dupliqués"
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr "Permettre à plusieurs pièces de partager le même IPN"
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr "Autoriser l'édition de l'IPN"
-#: common/models.py:112
+#: common/models.py:119
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:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr "jours"
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 87d69fb09a..fdb3b7ca79 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -29,14 +29,14 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -72,41 +72,41 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr ""
@@ -147,7 +147,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr ""
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr ""
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr ""
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr ""
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr ""
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
@@ -463,11 +463,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -534,7 +534,7 @@ msgstr ""
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr ""
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr ""
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
@@ -628,7 +628,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -711,16 +711,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr ""
@@ -810,11 +810,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -893,8 +893,8 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1211,7 +1211,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr ""
@@ -1250,7 +1250,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr ""
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr ""
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
-msgid "IPN Regex"
+msgid "Barcode Support"
msgstr ""
#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index fa6df1a934..5fb994a1e8 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -29,14 +29,14 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -72,41 +72,41 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr ""
@@ -147,7 +147,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr ""
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr ""
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr ""
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr ""
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr ""
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
@@ -463,11 +463,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -534,7 +534,7 @@ msgstr ""
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr ""
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr ""
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
@@ -628,7 +628,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -711,16 +711,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr ""
@@ -810,11 +810,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -893,8 +893,8 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1211,7 +1211,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr ""
@@ -1250,7 +1250,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr ""
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr ""
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
-msgid "IPN Regex"
+msgid "Barcode Support"
msgstr ""
#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 4bc233a127..200625b8cb 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -29,14 +29,14 @@ msgstr "Nie określono działania"
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr "Wprowadź dane"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr "Potwierdź"
@@ -72,41 +72,41 @@ msgstr "Zastosuj motyw"
msgid "Select Category"
msgstr "Wybierz kategorię"
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Nieprawidłowa grupa: {g}"
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Powtórzony numer seryjny: {g}"
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr "Załącznik"
@@ -147,7 +147,7 @@ msgstr "Nazwa"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr "Nazwa"
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr "Opis (opcjonalny)"
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr "Turecki"
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr "Data docelowa"
@@ -463,11 +463,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -534,7 +534,7 @@ msgstr "Oznacz budowę jako ukończoną"
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr "Lokalizacja"
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr "Lokalizacja ukończonych części"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr "Zlecenie Budowy"
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr "Zlecenia budowy"
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referencja"
@@ -628,7 +628,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr "Status budowania"
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr "Kod partii"
@@ -711,16 +711,16 @@ msgstr "Kod partii"
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr "Data zakończenia"
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr "Uwagi"
@@ -810,11 +810,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr "Budowa"
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr "Przydziel zapasy do budowy"
msgid "Auto Allocate"
msgstr "Automatyczne przypisywanie"
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr "Cofnij przydział zapasów"
@@ -893,8 +893,8 @@ msgstr "Zamów wymagane komponenty"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Zamów części"
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr "Numer Seryjny"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Załączniki"
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr "Postęp"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr "Partia"
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr "Utworzony"
@@ -1211,7 +1211,7 @@ msgstr "Utworzony"
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr "Zakończone"
@@ -1250,7 +1250,7 @@ msgstr "Szczegóły zlecenia budowy"
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr "Szczegóły"
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr "Dostępne"
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr "Dodano załącznik"
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr "Edytuj załącznik"
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr "Załącznik zaktualizowany"
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr "Usuń załącznik"
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr "Załącznik usunięto"
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr "Bazowy adres URL dla instancji serwera"
#: common/models.py:85
+msgid "Default Currency"
+msgstr ""
+
+#: common/models.py:86
+msgid "Default currency"
+msgstr ""
+
+#: common/models.py:92
msgid "Download from URL"
msgstr "Pobierz z adresu URL"
-#: common/models.py:86
+#: common/models.py:93
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:92
+#: common/models.py:99
msgid "Barcode Support"
msgstr "Obsługa kodu kreskowego"
-#: common/models.py:93
+#: common/models.py:100
msgid "Enable barcode scanner support"
msgstr "Włącz obsługę skanera kodów"
-#: common/models.py:99
+#: common/models.py:106
msgid "IPN Regex"
msgstr "Wyrażenie regularne IPN"
-#: common/models.py:100
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr "Zezwól na powtarzający się IPN"
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr "Zezwól na edycję IPN"
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr "Skopiuj BOM komponentu"
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr "Szablon"
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr "Złożenie"
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr "Komponent"
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Możliwość zakupu"
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr "Możliwość sprzedaży"
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr "Możliwość śledzenia"
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Wirtualny"
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
-msgstr "Tryb Debugowania"
+#: common/models.py:230
+msgid "Show related parts"
+msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
+msgid "Internal Prices"
+msgstr ""
+
+#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr "Tryb Debugowania"
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:238
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr "dni"
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr "Grupuj według komponentu"
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr "Ustawienia wartości"
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr "Cena"
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr "Domyślny"
@@ -1856,27 +1880,30 @@ msgstr "Domyślny"
msgid "Current value"
msgstr "Aktualna wartość"
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr "Zmień ustawienie"
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr "Waluta"
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr "URL"
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr "URL zdjęcia"
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr "Cena jednostkowa"
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr "Numer producenta"
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr "Punkt kontaktowy"
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr "jest producentem"
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr "Wybierz część"
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr "Opakowanie"
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr "Nie określono strony internetowej"
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr "Nowa część producenta"
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr "Opcje"
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr "Zamów części"
@@ -2267,7 +2307,7 @@ msgstr "Usuń części"
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr "Nowy komponent"
@@ -2294,7 +2334,7 @@ msgstr "Zapasy dostawcy"
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr "Eksportuj"
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr "Dostawcy"
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr "Usuń"
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr "Parametry"
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr "Dostarczone części"
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr "Informacja cenowa"
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr "Edytuj przedział cenowy"
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr "Producenci"
@@ -2600,20 +2640,20 @@ msgstr "Firmy"
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr "Filtry"
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Złóż zamówienie"
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr "Oznacz zamówienie jako zakończone"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr "Wyślij zamówienie"
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr "Wprowadź ilość produktów magazynowych"
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr "Zamówienie"
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr "Linia"
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr "Komponent"
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr "Wydany"
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr "Notatki zamówień"
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr "Wiersz"
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr "Akcje"
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr "Numer ID"
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr "Przydzielono"
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr "Wyślij zamówienie"
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr "Otrzymane przedmioty"
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr "Nie ustawiono miejsca docelowego"
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr "Błąd konwersji ilości na liczbę"
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr "Nie znaleziono ceny"
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr "Wariant"
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr "Słowa kluczowe"
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr "Suma kontrolna"
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr "Zestawienie materiałowe"
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr "Wszystkie części"
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr "Stwórz nową kategorię komponentów"
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr "Parametry części"
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr "Szczegóły części"
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 0b04ba9921..ea71217a29 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -29,14 +29,14 @@ msgstr "Действие не указано"
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr "Введите дату"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr "Подтвердить"
@@ -72,41 +72,41 @@ msgstr "Применить тему"
msgid "Select Category"
msgstr "Выбрать категорию"
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Повторяющийся серийный {g}"
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr "Вложения"
@@ -147,7 +147,7 @@ msgstr "Название"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr "Название"
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr "Описание (необязательно)"
msgid "parent"
msgstr "родитель"
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr "Турецкий"
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr "Срок выполнения заказа"
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr "Целевая дата"
@@ -463,11 +463,11 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr "Количество элементов для сборки"
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -534,7 +534,7 @@ msgstr "Пометить сборку как завершенную"
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr "Расположение"
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr "Расположение укомплектованных частей"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr "Порядок сборки"
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr "Порядок сборки"
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
@@ -628,7 +628,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -711,16 +711,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr ""
@@ -810,11 +810,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -893,8 +893,8 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1211,7 +1211,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr ""
@@ -1250,7 +1250,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr ""
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr ""
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
-msgid "IPN Regex"
+msgid "Barcode Support"
msgstr ""
#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 20d48e6e5b..4b8bfcdd8a 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -29,14 +29,14 @@ msgstr "İşlem belirtilmedi"
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr "Tarih giriniz"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr "Onay"
@@ -72,41 +72,41 @@ msgstr "Temayı Uygula"
msgid "Select Category"
msgstr "Kategori Seçin"
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Tekrarlanan seri {g}"
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr "Ek"
@@ -147,7 +147,7 @@ msgstr "Adı"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr "Adı"
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr "Açıklama (isteğe bağlı)"
msgid "parent"
msgstr "üst"
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr "Türkçe"
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr "Emir hedef tarihi"
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -463,11 +463,11 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr "Yapılacak öge sayısı"
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -534,7 +534,7 @@ msgstr "Yapım işini tamamlandı olarak işaretle"
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr "Konum"
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr "Tamamlanmış parçaların konumu"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr "Yapım İşi Emri"
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr "Yapım İşi Emirleri"
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referans"
@@ -628,7 +628,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr "Yapım İşi Durumu"
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr "Sıra numarası"
@@ -711,16 +711,16 @@ msgstr "Sıra numarası"
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr "Tamamlama tarihi"
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr "Notlar"
@@ -810,11 +810,11 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktıs
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli"
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı"
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr "Yapım İşi"
@@ -841,7 +841,7 @@ msgstr "Yapım işi için tahsis edilen parçalar"
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr "Yapım işi için stok tahsis et"
msgid "Auto Allocate"
msgstr "Otomatik Tahsis Et"
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr "Stok tahsisini kaldır"
@@ -893,8 +893,8 @@ msgstr "Gerekli parçaları sipariş edin"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Parça Siparişi"
@@ -915,16 +915,16 @@ msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğes
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr "Seri Numara"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Ekler"
@@ -977,7 +977,7 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr "İlerleme"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,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:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr "Toplu"
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr "Oluşturuldu"
@@ -1211,7 +1211,7 @@ msgstr "Oluşturuldu"
msgid "No target date set"
msgstr "Hedef tarih ayarlanmadı"
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr "Tamamlandı"
@@ -1250,7 +1250,7 @@ msgstr "Yapım İşi Emri Detayları"
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr "Detaylar"
@@ -1412,8 +1412,8 @@ msgstr "Öge stokta bulunmalı"
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr "Mevcut"
@@ -1433,56 +1433,56 @@ msgstr "Yapım İşi Ögesini Güncelle"
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr "Ek eklendi"
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr "Ek Düzenle"
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr "Ek güncellendi"
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr "Eki Sil"
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr "Eki sil"
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr "Desteklenmeyen dosya formatı: {ext.upper()}"
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr "Dosya okurken hata (geçersiz biçim)"
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr "Dosya okurken hata (hatalı ölçüler)"
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr "Dosya okurken hata (veri bozulmuş olabilir)"
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr "Dosya"
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr "Yüklenecek dosyayı seç"
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr "{name.title()} Dosya"
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
-msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
+msgid "Default currency"
+msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
+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:99
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:100
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:99
+#: common/models.py:106
msgid "IPN Regex"
msgstr "DPN Regex"
-#: common/models.py:100
+#: common/models.py:107
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:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr "Yinelenen DPN'ye İzin Ver"
-#: common/models.py:105
+#: common/models.py:112
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:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr "DPN Düzenlemeye İzin Ver"
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr "Kategori Paremetre Sablonu Kopyala"
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr "Şablon"
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr "Montaj"
-#: common/models.py:161
+#: common/models.py:168
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:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr "Bileşen"
-#: common/models.py:168
+#: common/models.py:175
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:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Satın Alınabilir"
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr "Satılabilir"
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr "Takip Edilebilir"
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Sanal"
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr "Atanan Stok"
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr "Satın Alma Emri Oluştur"
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr "Parçaları Sil"
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr "Tedarikçi Stoku"
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2372,8 +2412,8 @@ msgstr "Bu üretici parçası için tanımlanmış %(count)s tedarikçi bulunmak
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr "Stok Kalemleri"
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr "Satış Emirleri"
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr "Yeni Satış Emri"
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr "Parçaları bu konuma alın"
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr "Stok kalemi seri numaları girin"
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr "Aşağıdaki gerekli sütunlar için eksik seçimler"
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr "Dosya Alanları"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr "Tedarikçi Parçası Seçin"
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr "Sipariş Emri için Dosya Yükle"
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr "İşlemler"
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr "Bu işlem Sipariş Emrinden belirtilen stok kalemleri tahsis edemedi"
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr "Seri Numaralarını Tahsis Et"
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr "{serial} seri numarası için eşleşen öge bulunamadı"
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr "{serial} stokta yok"
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr "{serial} zaten bir emirde tahsis edilmiş"
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr "Tahsis Miktarını Düzenle"
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr "Tahsisi Sil"
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr "Parça Kategorileri"
@@ -3876,7 +3932,7 @@ msgstr "Çeşidi"
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
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:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
@@ -4150,8 +4206,8 @@ msgstr "Çeşide İzin Ver"
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:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr "Kategori Detayları"
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr "Alt kategoriler"
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr "Parçalar (Alt kategoriler dahil)"
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr "Kategori ayarla"
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr "Kategori Ayarla"
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr "Yeni konum oluştur"
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr "Parça Çeşitleri"
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr "Çeşitler"
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr "Tahsisler"
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr "Satış Emirleri için Gerekli"
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr "Yeni Çeşit"
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr "Test Şablonu Oluştur"
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr "Test Şablonu Düzenle"
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr "Test Şablonu Sil"
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr "Çeşit Oluştur"
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr "{n} öge için stok güncellendi"
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr "Varsayılan Konum Ayarla"
msgid "Set the destination as the default location for selected parts"
msgstr "Hedefi seçili parçalar için varsayılan konum olarak ayarla"
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
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:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr "Konum ayarlanmadı"
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr "Stoku Seri Numarala"
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr "Kategori parametre şablonu bulunamadı"
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr "Şablonu Düzenle"
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr "Şablonu Sil"
@@ -6297,23 +6371,23 @@ msgstr "Şablonu Sil"
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr "Parça Parametre Şablonu"
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
@@ -6626,7 +6708,7 @@ msgstr "Konuma Kaydet"
msgid "Barcode does not match a valid location"
msgstr "Barkod geçerli bir konumla eşleşmiyor"
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 34dbe857dc..006635f31e 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: 2021-06-24 21:38+0000\n"
-"PO-Revision-Date: 2021-06-24 21:40\n"
+"POT-Creation-Date: 2021-07-01 22:35+0000\n"
+"PO-Revision-Date: 2021-07-01 22:38\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -29,14 +29,14 @@ msgstr "未指定操作"
msgid "No matching action found"
msgstr "未找到指定操作"
-#: InvenTree/fields.py:44
+#: InvenTree/fields.py:84
msgid "Enter date"
msgstr "输入日期"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
+#: order/forms.py:75 part/forms.py:134
msgid "Confirm"
msgstr "确认"
@@ -72,41 +72,41 @@ msgstr "应用主题"
msgid "Select Category"
msgstr "选择分类"
-#: InvenTree/helpers.py:377
+#: InvenTree/helpers.py:396
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358
+#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:406
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
-#: InvenTree/helpers.py:440
+#: InvenTree/helpers.py:428 InvenTree/helpers.py:431 InvenTree/helpers.py:434
+#: InvenTree/helpers.py:459
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:445
+#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:453
+#: InvenTree/helpers.py:472
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:457
+#: InvenTree/helpers.py:476
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1763
+#: InvenTree/models.py:59 stock/models.py:1758
msgid "Attachment"
msgstr "附件"
@@ -147,7 +147,7 @@ msgstr "名称"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:104 order/templates/order/purchase_order_detail.html:147
+#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
#: part/models.py:695 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
@@ -155,7 +155,7 @@ msgstr "名称"
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:833 templates/js/build.js:1101
+#: templates/js/build.js:834 templates/js/build.js:1102
#: templates/js/company.js:56 templates/js/order.js:183
#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
@@ -172,23 +172,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr ""
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr ""
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr ""
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr ""
@@ -446,11 +446,11 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149
+#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:880 templates/js/order.js:200
+#: templates/js/build.js:881 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
@@ -463,11 +463,11 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:31 common/models.py:720
-#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268
-#: order/forms.py:285 order/models.py:617 order/models.py:841
-#: order/templates/order/order_wizard/match_parts.html:29
+#: build/templates/build/detail.html:31 common/models.py:741
+#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
+#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
+#: order/forms.py:289 order/models.py:613 order/models.py:835
+#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
#: order/templates/order/purchase_order_detail.html:179
#: order/templates/order/sales_order_detail.html:70
@@ -476,7 +476,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:202
+#: part/templates/part/order_prices.html:203
#: part/templates/part/part_pricing.html:16
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
@@ -486,8 +486,8 @@ msgstr ""
#: stock/forms.py:175 stock/forms.py:308
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571
-#: templates/js/build.js:1111 templates/js/order.js:393
+#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
+#: templates/js/build.js:1112 templates/js/order.js:393
#: templates/js/part.js:796 templates/js/stock.js:1164
#: templates/js/stock.js:1383
msgid "Quantity"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -534,7 +534,7 @@ msgstr ""
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:585 templates/js/order.js:378
+#: templates/js/build.js:586 templates/js/order.js:378
#: templates/js/stock.js:643 templates/js/stock.js:1056
msgid "Location"
msgstr ""
@@ -544,10 +544,10 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:469
+#: build/templates/build/detail.html:59 order/models.py:465
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
-#: templates/js/barcode.js:119 templates/js/build.js:867
+#: templates/js/barcode.js:119 templates/js/build.js:868
#: templates/js/order.js:187 templates/js/order.js:285
#: templates/js/stock.js:630 templates/js/stock.js:1133
#: templates/js/stock.js:1399
@@ -592,8 +592,8 @@ msgstr ""
#: build/models.py:67 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57
-#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183
+#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
msgid "Build Orders"
@@ -603,12 +603,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:102 order/models.py:619
+#: build/models.py:128 order/models.py:98 order/models.py:615
#: order/templates/order/purchase_order_detail.html:174
#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:660 templates/js/build.js:1105
+#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
@@ -628,7 +628,7 @@ msgstr ""
#: build/models.py:153 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:661 order/models.py:717
+#: order/models.py:657 order/models.py:712
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:132
#: order/templates/order/receive_parts.html:19
@@ -643,8 +643,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:551 templates/js/build.js:838
-#: templates/js/build.js:1078 templates/js/company.js:140
+#: templates/js/build.js:552 templates/js/build.js:839
+#: templates/js/build.js:1079 templates/js/company.js:140
#: templates/js/company.js:339 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
#: templates/js/stock.js:1371
@@ -703,7 +703,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:466
+#: build/models.py:213 stock/models.py:462
msgid "Batch Code"
msgstr ""
@@ -711,16 +711,16 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:108 part/models.py:867
+#: build/models.py:220 order/models.py:104 part/models.py:867
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:475
+#: build/models.py:224 order/models.py:471
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:221 templates/js/build.js:885
+#: build/models.py:228 order/models.py:217 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
@@ -737,7 +737,7 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:122
+#: build/templates/build/detail.html:105 order/models.py:118
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:140 part/models.py:871
#: report/templates/report/inventree_build_order_base.html:159
@@ -754,30 +754,30 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:460 stock/templates/stock/item_base.html:345
+#: stock/models.py:456 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:462
+#: build/models.py:258 part/models.py:729 stock/models.py:458
msgid "Link to external URL"
msgstr ""
#: build/models.py:262 build/templates/build/navbar.html:53
#: company/models.py:132 company/models.py:539
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:126
-#: order/models.py:621 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:122
+#: order/models.py:617 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
#: order/templates/order/purchase_order_detail.html:243
#: order/templates/order/sales_order_detail.html:309
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:142
+#: part/templates/part/navbar.html:145
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:532 stock/models.py:1667 stock/models.py:1769
+#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
msgid "Notes"
msgstr ""
@@ -810,11 +810,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:815
+#: build/models.py:1188 order/models.py:809
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:818
+#: build/models.py:1192 order/models.py:812
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -828,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:1316 stock/templates/stock/item_base.html:317
-#: templates/InvenTree/search.html:183 templates/js/build.js:811
+#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
@@ -841,7 +841,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
-#: templates/js/build.js:211 templates/js/build.js:928
+#: templates/js/build.js:211 templates/js/build.js:929
#: templates/js/order.js:366 templates/js/order.js:371
#: templates/js/stock.js:1115
msgid "Stock Item"
@@ -879,7 +879,7 @@ msgstr ""
msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:25 templates/js/build.js:743
+#: build/templates/build/allocate.html:25 templates/js/build.js:744
msgid "Unallocate stock"
msgstr ""
@@ -893,8 +893,8 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
-#: part/templates/part/category.html:127
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -915,16 +915,16 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:75
#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:454 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:569
+#: stock/models.py:450 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133
-#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
+#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -977,7 +977,7 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:18 part/templates/part/part_base.html:22
+#: part/templates/part/category.html:27 part/templates/part/part_base.html:22
#: stock/templates/stock/item_base.html:62
#: stock/templates/stock/location.html:31
msgid "Admin view"
@@ -1036,7 +1036,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:715
+#: build/templates/build/detail.html:84 order/models.py:710
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
@@ -1183,7 +1183,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1203,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875
+#: order/templates/order/sales_order_base.html:113 templates/js/build.js:876
msgid "Created"
msgstr ""
@@ -1211,7 +1211,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:853
+#: build/templates/build/detail.html:132 templates/js/build.js:854
msgid "Completed"
msgstr ""
@@ -1250,7 +1250,7 @@ msgstr ""
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
-#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17
+#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
#: templates/js/stock.js:1044
msgid "Details"
msgstr ""
@@ -1412,8 +1412,8 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670
-#: templates/js/build.js:935 templates/js/build.js:1118
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:671
+#: templates/js/build.js:936 templates/js/build.js:1119
msgid "Available"
msgstr ""
@@ -1433,56 +1433,56 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173
+#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:194 order/views.py:215
+#: build/views.py:1119 order/views.py:196 order/views.py:217
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:198 order/views.py:219
+#: build/views.py:1129 order/views.py:200 order/views.py:221
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:234 order/views.py:248
+#: build/views.py:1139 order/views.py:236 order/views.py:250
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
+#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr ""
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr ""
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr ""
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr ""
@@ -1520,335 +1520,359 @@ msgid "Base URL for server instance"
msgstr ""
#: common/models.py:85
-msgid "Download from URL"
+msgid "Default Currency"
msgstr ""
#: common/models.py:86
-msgid "Allow download of remote images and files from external URL"
+msgid "Default currency"
msgstr ""
#: common/models.py:92
-msgid "Barcode Support"
+msgid "Download from URL"
msgstr ""
#: common/models.py:93
-msgid "Enable barcode scanner support"
+msgid "Allow download of remote images and files from external URL"
msgstr ""
#: common/models.py:99
-msgid "IPN Regex"
+msgid "Barcode Support"
msgstr ""
#: common/models.py:100
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:106
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:107
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:104
+#: common/models.py:111
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:105
+#: common/models.py:112
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:111
+#: common/models.py:118
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:112
+#: common/models.py:119
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:118
+#: common/models.py:125
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:119
+#: common/models.py:126
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:125
+#: common/models.py:132
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:126
+#: common/models.py:133
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:132
+#: common/models.py:139
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:133
+#: common/models.py:140
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:139
+#: common/models.py:146
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:140
+#: common/models.py:147
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:146
+#: common/models.py:153
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:147
+#: common/models.py:154
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160
+#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
#: templates/js/table_filters.js:315
msgid "Template"
msgstr ""
-#: common/models.py:154
+#: common/models.py:161
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170
+#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
msgid "Assembly"
msgstr ""
-#: common/models.py:161
+#: common/models.py:168
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
#: templates/js/table_filters.js:331
msgid "Component"
msgstr ""
-#: common/models.py:168
+#: common/models.py:175
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:175
+#: common/models.py:182
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210
+#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
#: templates/js/table_filters.js:339
msgid "Salable"
msgstr ""
-#: common/models.py:182
+#: common/models.py:189
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190
+#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
msgid "Trackable"
msgstr ""
-#: common/models.py:189
+#: common/models.py:196
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:196
+#: common/models.py:203
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:202
+#: common/models.py:209
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:203
+#: common/models.py:210
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:209
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:210
-msgid "Display part price in some forms"
-msgstr ""
-
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Show related parts"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Display related parts for a part"
msgstr ""
#: common/models.py:237
-msgid "Page Size"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:238
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:244
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:245
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:251 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:252
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:258
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:259
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:269
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:270
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:276
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:277
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:283
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:284
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:290
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:291
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:293 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:298
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:299
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:305
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:306
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:312
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:313
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:319
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:320
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:326
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:327
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:332
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:333
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:337
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:338
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:343
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:344
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:567
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:569
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:604
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:627
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:638
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:661
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:742 company/forms.py:190
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90 templates/js/bom.js:271
+#: part/templates/part/sale_prices.html:90
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:750
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:842
msgid "Default"
msgstr ""
@@ -1856,27 +1880,30 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr ""
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:582
+#: order/templates/order/po_navbar.html:22 order/views.py:605
#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
msgid "Match Fields"
msgstr ""
@@ -1884,44 +1911,57 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
-#: company/forms.py:38 company/models.py:142
+#: common/views.py:586
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:608 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:37 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:144
+#: company/forms.py:38 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:77 part/forms.py:46
+#: company/forms.py:76 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:78 part/forms.py:47
+#: company/forms.py:77 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:133 templates/js/part.js:787
+#: company/forms.py:132 templates/js/part.js:787
msgid "Single Price"
msgstr ""
-#: company/forms.py:135
+#: company/forms.py:133
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:143 company/models.py:321
+#: company/forms.py:141 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:149 company/models.py:328
+#: company/forms.py:147 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:151 company/models.py:327
+#: company/forms.py:149 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
@@ -1981,7 +2021,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:106 part/models.py:728
+#: order/models.py:102 part/models.py:728
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:188 templates/js/company.js:419
#: templates/js/part.js:498
@@ -2020,12 +2060,12 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:407
+#: company/models.py:305 company/models.py:497 stock/models.py:403
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1597
+#: company/models.py:309 company/models.py:501 order/views.py:1603
msgid "Select part"
msgstr ""
@@ -2061,7 +2101,7 @@ msgstr ""
#: company/models.py:403 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1756 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:241 templates/js/stock.js:137
msgid "Value"
msgstr ""
@@ -2082,7 +2122,7 @@ msgstr ""
#: company/models.py:507 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:193
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
@@ -2134,7 +2174,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:431 stock/templates/stock/item_base.html:310
+#: stock/models.py:427 stock/templates/stock/item_base.html:310
#: templates/js/stock.js:695
msgid "Packaging"
msgstr ""
@@ -2153,7 +2193,7 @@ msgstr ""
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
-#: company/templates/company/navbar.html:65 templates/js/build.js:562
+#: company/templates/company/navbar.html:65 templates/js/build.js:563
msgid "Assigned Stock"
msgstr ""
@@ -2173,7 +2213,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:311
+#: company/templates/company/company_base.html:46 order/views.py:313
msgid "Create Purchase Order"
msgstr ""
@@ -2218,9 +2258,9 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:464
-#: order/templates/order/sales_order_base.html:94 stock/models.py:449
-#: stock/models.py:450 stock/templates/stock/item_base.html:262
+#: company/templates/company/detail.html:67 order/models.py:460
+#: order/templates/order/sales_order_base.html:94 stock/models.py:445
+#: stock/models.py:446 stock/templates/stock/item_base.html:262
#: templates/js/company.js:40 templates/js/order.js:267
#: templates/js/stock.js:1097
msgid "Customer"
@@ -2243,7 +2283,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
-#: part/templates/part/category.html:122
+#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
@@ -2251,7 +2291,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
-#: part/templates/part/category.html:127
+#: part/templates/part/category.html:136
msgid "Order parts"
msgstr ""
@@ -2267,7 +2307,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
-#: part/templates/part/bom.html:159 part/templates/part/category.html:118
+#: part/templates/part/bom.html:159 part/templates/part/category.html:127
#: templates/js/stock.js:1312
msgid "New Part"
msgstr ""
@@ -2294,7 +2334,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
-#: part/templates/part/category.html:114 part/templates/part/category.html:128
+#: part/templates/part/category.html:123 part/templates/part/category.html:137
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2372,8 +2412,8 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:86
-#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316
+#: company/views.py:63 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2385,7 +2425,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2418,16 +2458,16 @@ msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:37
-#: part/templates/part/category_navbar.html:34
-#: part/templates/part/category_navbar.html:37
-#: part/templates/part/navbar.html:24
+#: part/templates/part/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
+#: part/templates/part/navbar.html:25
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:43
#: part/templates/part/params.html:18
#: templates/InvenTree/settings/category.html:29
-#: templates/InvenTree/settings/part.html:48
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
@@ -2446,7 +2486,7 @@ msgstr ""
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:36
#: stock/templates/stock/location.html:107
#: stock/templates/stock/location.html:122
#: stock/templates/stock/location.html:136
@@ -2463,7 +2503,7 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
@@ -2475,7 +2515,7 @@ msgstr ""
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
+#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
@@ -2508,7 +2548,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:416
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
msgid "Supplier Part"
msgstr ""
@@ -2558,7 +2598,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2751
+#: part/templates/part/sale_prices.html:17 part/views.py:2918
msgid "Add Price Break"
msgstr ""
@@ -2577,8 +2617,8 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:80
-#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306
+#: company/views.py:70 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
@@ -2600,20 +2640,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:980
+#: company/views.py:198 part/views.py:1147
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:996
+#: company/views.py:214 part/views.py:1163
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2681,15 +2721,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr ""
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr ""
@@ -2754,178 +2794,178 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:31 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:42 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:75 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:90
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:112
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:119
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:147
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:154 order/models.py:472
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:246
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:252
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:102
+#: order/models.py:98
msgid "Order reference"
msgstr ""
-#: order/models.py:104
+#: order/models.py:100
msgid "Order description"
msgstr ""
-#: order/models.py:106
+#: order/models.py:102
msgid "Link to external page"
msgstr ""
-#: order/models.py:114 part/templates/part/detail.html:132
+#: order/models.py:110 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:121
+#: order/models.py:117
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:126
+#: order/models.py:122
msgid "Order notes"
msgstr ""
-#: order/models.py:185 order/models.py:469
+#: order/models.py:181 order/models.py:465
msgid "Purchase order status"
msgstr ""
-#: order/models.py:194
+#: order/models.py:190
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:197 order/templates/order/order_base.html:98
+#: order/models.py:193 order/templates/order/order_base.html:98
#: templates/js/order.js:179
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:197
+#: order/models.py:193
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:204
+#: order/models.py:200
msgid "received by"
msgstr ""
-#: order/models.py:209
+#: order/models.py:205
msgid "Issue Date"
msgstr ""
-#: order/models.py:210
+#: order/models.py:206
msgid "Date order was issued"
msgstr ""
-#: order/models.py:215
+#: order/models.py:211
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:216
+#: order/models.py:212
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:222
+#: order/models.py:218
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
-#: stock/models.py:1020
+#: order/models.py:242 part/views.py:1853 stock/models.py:300
+#: stock/models.py:1015
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:251
+#: order/models.py:247
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:349
+#: order/models.py:345
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:353
+#: order/models.py:349
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:355
+#: order/models.py:351
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:465
+#: order/models.py:461
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer Reference "
msgstr ""
-#: order/models.py:471
+#: order/models.py:467
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:479 templates/js/order.js:303
+#: order/models.py:475 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:486
+#: order/models.py:482
msgid "shipped by"
msgstr ""
-#: order/models.py:530
+#: order/models.py:526
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:617
+#: order/models.py:613
msgid "Item quantity"
msgstr ""
-#: order/models.py:619
+#: order/models.py:615
msgid "Line item reference"
msgstr ""
-#: order/models.py:621
+#: order/models.py:617
msgid "Line item notes"
msgstr ""
-#: order/models.py:647 order/models.py:715 templates/js/order.js:353
+#: order/models.py:643 order/models.py:710 templates/js/order.js:353
msgid "Order"
msgstr ""
-#: order/models.py:648 order/templates/order/order_base.html:9
+#: order/models.py:644 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
@@ -2933,77 +2973,77 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/models.py:662
+#: order/models.py:658
msgid "Supplier part"
msgstr ""
-#: order/models.py:665 order/templates/order/order_base.html:131
+#: order/models.py:661 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:219
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:665
+#: order/models.py:661
msgid "Number of items received"
msgstr ""
-#: order/models.py:672 stock/models.py:542
+#: order/models.py:667 stock/models.py:537
#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
msgid "Purchase Price"
msgstr ""
-#: order/models.py:673
+#: order/models.py:668
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:681
+#: order/models.py:676
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: order/models.py:718 part/templates/part/navbar.html:110
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
-#: order/models.py:725
+#: order/models.py:719
msgid "Unit sale price"
msgstr ""
-#: order/models.py:800 order/models.py:802
+#: order/models.py:794 order/models.py:796
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:806
+#: order/models.py:800
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:808
+#: order/models.py:802
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:811
+#: order/models.py:805
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:821
+#: order/models.py:815
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:826
+#: order/models.py:820
msgid "Line"
msgstr ""
-#: order/models.py:837
+#: order/models.py:831
msgid "Item"
msgstr ""
-#: order/models.py:838
+#: order/models.py:832
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:841
+#: order/models.py:835
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3053,7 +3093,7 @@ msgstr ""
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
-#: part/templates/part/category.html:208 part/templates/part/category.html:250
+#: part/templates/part/category.html:217 part/templates/part/category.html:259
#: stock/templates/stock/location.html:191 templates/js/stock.js:736
#: templates/js/stock.js:1324
msgid "New Location"
@@ -3091,57 +3131,71 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/select_fields.html:21
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr ""
-
#: order/templates/order/order_wizard/match_fields.html:29
-#: order/templates/order/order_wizard/match_parts.html:20
+#: order/templates/order/order_wizard/match_parts.html:21
#: part/templates/part/bom_upload/select_fields.html:32
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
msgid "Submit Selections"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/bom_upload/select_fields.html:41
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/select_fields.html:47
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:71
-#: order/templates/order/order_wizard/match_parts.html:51
+#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/bom_upload/select_fields.html:76
#: part/templates/part/bom_upload/select_parts.html:58
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
msgid "Remove row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:11
+#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/select_parts.html:21
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:27
+#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/select_parts.html:39
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
msgstr ""
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr ""
@@ -3150,6 +3204,8 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
@@ -3239,8 +3295,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1321
-#: order/views.py:1404
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
+#: order/views.py:1410
msgid "Add Line Item"
msgstr ""
@@ -3288,9 +3344,9 @@ msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
#: part/models.py:322 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:99 part/templates/part/category.html:148
-#: part/templates/part/category_navbar.html:22
-#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category.html:108 part/templates/part/category.html:157
+#: part/templates/part/category_navbar.html:25
+#: part/templates/part/category_navbar.html:32
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
@@ -3356,18 +3412,18 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365
-#: templates/js/build.js:724 templates/js/build.js:1141
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610
-#: templates/js/build.js:946
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612
-#: templates/js/build.js:947
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
@@ -3379,8 +3435,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675
-#: templates/js/build.js:942
+#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
@@ -3396,7 +3452,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738
+#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
@@ -3404,8 +3460,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731
-#: templates/js/build.js:1149
+#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
@@ -3459,195 +3515,195 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr ""
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr ""
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr ""
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr ""
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr ""
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr ""
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr ""
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr ""
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr ""
-#: order/views.py:1012
+#: order/views.py:1018
msgid "Update prices"
msgstr ""
-#: order/views.py:1270
+#: order/views.py:1276
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr ""
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr ""
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:747
-#: part/templates/part/category.html:66 part/templates/part/detail.html:90
+#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3825,8 +3881,8 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:23
-#: part/templates/part/category.html:94 templates/InvenTree/search.html:127
+#: part/models.py:83 part/templates/part/category.html:32
+#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3876,7 +3932,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:73
+#: part/models.py:701 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -4101,7 +4157,7 @@ msgstr ""
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285
+#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
@@ -4133,7 +4189,7 @@ msgstr ""
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309
+#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
@@ -4142,7 +4198,7 @@ msgstr ""
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:294
+#: part/models.py:2317 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
@@ -4150,8 +4206,8 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
-#: stock/models.py:294
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
+#: stock/models.py:290
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4199,8 +4255,8 @@ msgstr ""
msgid "Deleting this entry will remove the BOM row from the following part"
msgstr ""
-#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53
+#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
+#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
msgstr ""
@@ -4247,7 +4303,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1987
+#: part/templates/part/bom.html:61 part/views.py:2154
msgid "Export Bill of Materials"
msgstr ""
@@ -4263,7 +4319,7 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:585
+#: part/templates/part/bom.html:160 part/views.py:590
#: templates/js/stock.js:1313
msgid "Create New Part"
msgstr ""
@@ -4300,7 +4356,7 @@ msgid "Select Part"
msgstr ""
#: part/templates/part/bom_upload/select_parts.html:65
-#: part/templates/part/category.html:117
+#: part/templates/part/category.html:126
msgid "Create new part"
msgstr ""
@@ -4341,87 +4397,87 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2397
+#: part/templates/part/category.html:38 part/views.py:2564
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:50 part/templates/part/category.html:89
+#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:79
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:18
+#: part/templates/part/category.html:88
+#: part/templates/part/category_navbar.html:14
+#: part/templates/part/category_navbar.html:21
#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr ""
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr ""
-#: part/templates/part/category.html:209
+#: part/templates/part/category.html:218
#: stock/templates/stock/location.html:192 templates/js/stock.js:737
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:214 part/templates/part/category.html:244
+#: part/templates/part/category.html:223 part/templates/part/category.html:253
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:251 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4460,12 +4516,17 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+msgid "Import Parts"
+msgstr ""
+
#: part/templates/part/category_parametric.html:10
-#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
+#: part/templates/part/navbar.html:22 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:461
+#: part/templates/part/copy_part.html:9 part/views.py:466
msgid "Duplicate Part"
msgstr ""
@@ -4489,7 +4550,7 @@ msgstr ""
msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
-#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13
+#: part/templates/part/detail.html:11 part/templates/part/navbar.html:14
msgid "Part Details"
msgstr ""
@@ -4569,12 +4630,21 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:100
+#: part/templates/part/navbar.html:101
msgid "Internal Price Information"
msgstr ""
-#: part/templates/part/internal_prices.html:19 part/views.py:2822
+#: part/templates/part/internal_prices.html:19 part/views.py:2989
msgid "Add Internal Price Break"
msgstr ""
@@ -4612,78 +4682,78 @@ msgstr ""
msgid "Create new manufacturer"
msgstr ""
-#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11
+#: part/templates/part/navbar.html:29 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
-#: part/templates/part/navbar.html:31
+#: part/templates/part/navbar.html:32
msgid "Variants"
msgstr ""
-#: part/templates/part/navbar.html:42
+#: part/templates/part/navbar.html:43
msgid "Allocated Stock"
msgstr ""
-#: part/templates/part/navbar.html:45
+#: part/templates/part/navbar.html:46
msgid "Allocations"
msgstr ""
-#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69
+#: part/templates/part/navbar.html:67 part/templates/part/navbar.html:70
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12
+#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
msgid "Order Price Information"
msgstr ""
-#: part/templates/part/navbar.html:77
+#: part/templates/part/navbar.html:78
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
-#: part/templates/part/navbar.html:106
+#: part/templates/part/navbar.html:107
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130
+#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr ""
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr ""
-#: part/templates/part/order_prices.html:36
+#: part/templates/part/order_prices.html:37
#: part/templates/part/part_pricing.html:22
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:94
-#: part/templates/part/order_prices.html:108
+#: part/templates/part/order_prices.html:38
+#: part/templates/part/order_prices.html:63
+#: part/templates/part/order_prices.html:95
+#: part/templates/part/order_prices.html:109
#: part/templates/part/part_pricing.html:26
#: part/templates/part/part_pricing.html:52
#: part/templates/part/part_pricing.html:85
@@ -4691,10 +4761,10 @@ msgstr ""
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/order_prices.html:44
-#: part/templates/part/order_prices.html:69
-#: part/templates/part/order_prices.html:99
-#: part/templates/part/order_prices.html:113
+#: part/templates/part/order_prices.html:45
+#: part/templates/part/order_prices.html:70
+#: part/templates/part/order_prices.html:100
+#: part/templates/part/order_prices.html:114
#: part/templates/part/part_pricing.html:32
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:89
@@ -4702,51 +4772,51 @@ msgstr ""
msgid "Total Cost"
msgstr ""
-#: part/templates/part/order_prices.html:52
+#: part/templates/part/order_prices.html:53
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:61
-#: part/templates/part/order_prices.html:128
+#: part/templates/part/order_prices.html:62
+#: part/templates/part/order_prices.html:129
#: part/templates/part/part_pricing.html:48
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:77
+#: part/templates/part/order_prices.html:78
#: part/templates/part/part_pricing.html:66
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/order_prices.html:84
+#: part/templates/part/order_prices.html:85
#: part/templates/part/part_pricing.html:73
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/order_prices.html:122
+#: part/templates/part/order_prices.html:123
#: part/templates/part/part_pricing.html:113
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr ""
-#: part/templates/part/order_prices.html:146
+#: part/templates/part/order_prices.html:147
msgid "No stock pricing history is available for this part."
msgstr ""
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr ""
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr ""
@@ -4847,7 +4917,7 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/bom.js:323
+#: part/templates/part/part_base.html:172 templates/js/bom.js:316
msgid "Can Build"
msgstr ""
@@ -4965,220 +5035,224 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr ""
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr ""
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr ""
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr ""
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr ""
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr ""
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr ""
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr ""
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr ""
-#: part/views.py:520 part/views.py:658
+#: part/views.py:525 part/views.py:663
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr ""
-#: part/views.py:925
+#: part/views.py:763
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr ""
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr ""
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr ""
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr ""
-#: part/views.py:2831
+#: part/views.py:2998
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2839
+#: part/views.py:3006
msgid "Delete Internal Price Break"
msgstr ""
@@ -5284,12 +5358,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1744
+#: stock/models.py:1739
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1750
+#: stock/models.py:1745
msgid "Result"
msgstr ""
@@ -5316,7 +5390,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:509
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
@@ -5406,187 +5480,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:56 stock/models.py:547
+#: stock/models.py:52 stock/models.py:542
msgid "Owner"
msgstr ""
-#: stock/models.py:57 stock/models.py:548
+#: stock/models.py:53 stock/models.py:543
msgid "Select Owner"
msgstr ""
-#: stock/models.py:275
+#: stock/models.py:271
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:307
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:321 stock/models.py:330
+#: stock/models.py:317 stock/models.py:326
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:318
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:344
+#: stock/models.py:340
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:350
+#: stock/models.py:346
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:353
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:399
+#: stock/models.py:395
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:408
+#: stock/models.py:404
msgid "Base part"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:413
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:422 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:425
+#: stock/models.py:421
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:428
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:437 stock/templates/stock/item_base.html:270
+#: stock/models.py:433 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:436
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:456
+#: stock/models.py:452
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:464
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:468
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:481
+#: stock/models.py:477
msgid "Source Build"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:479
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:490
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:497
+#: stock/models.py:493
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:499
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:510
+#: stock/models.py:506
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:523
+#: stock/models.py:519
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:533 stock/templates/stock/item_notes.html:13
+#: stock/models.py:529 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:543
+#: stock/models.py:538
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1011
+#: stock/models.py:1006
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1017
+#: stock/models.py:1012
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1023
+#: stock/models.py:1018
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1026
+#: stock/models.py:1021
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1029
+#: stock/models.py:1024
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1036
+#: stock/models.py:1031
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1189
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1668
+#: stock/models.py:1663
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1721
+#: stock/models.py:1716
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1722
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1745
+#: stock/models.py:1740
msgid "Test name"
msgstr ""
-#: stock/models.py:1751 templates/js/table_filters.js:217
+#: stock/models.py:1746 templates/js/table_filters.js:217
msgid "Test result"
msgstr ""
-#: stock/models.py:1757
+#: stock/models.py:1752
msgid "Test output value"
msgstr ""
-#: stock/models.py:1764
+#: stock/models.py:1759
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1770
+#: stock/models.py:1765
msgid "Test notes"
msgstr ""
@@ -5738,7 +5812,7 @@ msgstr ""
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:289 templates/js/build.js:593
+#: stock/templates/stock/item_base.html:289 templates/js/build.js:594
msgid "No location set"
msgstr ""
@@ -6135,7 +6209,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:326
+#: stock/views.py:1575 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
@@ -6284,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:102
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:103
msgid "Delete Template"
msgstr ""
@@ -6297,23 +6371,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:18
+#: templates/InvenTree/settings/currencies.html:25
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:22
+#: templates/InvenTree/settings/currencies.html:29
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:32
+#: templates/InvenTree/settings/currencies.html:39
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:38
+#: templates/InvenTree/settings/currencies.html:45
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:50
msgid "Update Now"
msgstr ""
@@ -6337,11 +6411,19 @@ msgstr ""
msgid "Part Options"
msgstr ""
-#: templates/InvenTree/settings/part.html:44
+#: templates/InvenTree/settings/part.html:45
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:82
msgid "No part parameter templates found"
msgstr ""
@@ -6626,7 +6708,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:1091
+#: templates/js/bom.js:175 templates/js/build.js:1092
msgid "Open subassembly"
msgstr ""
@@ -6638,31 +6720,35 @@ msgstr ""
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/bom.js:277
+#: templates/js/bom.js:265
+msgid "Buy Price"
+msgstr ""
+
+#: templates/js/bom.js:271
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:313 templates/js/bom.js:399
+#: templates/js/bom.js:306 templates/js/bom.js:392
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:373
+#: templates/js/bom.js:366
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:375
+#: templates/js/bom.js:368
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:377
+#: templates/js/bom.js:370
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:379
+#: templates/js/bom.js:372
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189
+#: templates/js/bom.js:463 templates/js/build.js:424 templates/js/build.js:1190
msgid "No BOM items found"
msgstr ""
@@ -6690,37 +6776,37 @@ msgstr ""
msgid "Location not specified"
msgstr ""
-#: templates/js/build.js:325 templates/stock_table.html:20
+#: templates/js/build.js:326 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:644
+#: templates/js/build.js:645
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:665
+#: templates/js/build.js:666
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:735 templates/js/build.js:1153
+#: templates/js/build.js:736 templates/js/build.js:1154
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:788
+#: templates/js/build.js:789
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635
+#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
#: templates/js/stock.js:514 templates/js/stock.js:966
msgid "Select"
msgstr ""
-#: templates/js/build.js:825
+#: templates/js/build.js:826
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:924
+#: templates/js/build.js:925
msgid "No parts allocated for"
msgstr ""
diff --git a/InvenTree/part/templates/part/stock.html b/InvenTree/part/templates/part/stock.html
index 067eda66a8..6bb4c246f0 100644
--- a/InvenTree/part/templates/part/stock.html
+++ b/InvenTree/part/templates/part/stock.html
@@ -41,6 +41,7 @@
part: {{ part.id }},
location_detail: true,
part_detail: false,
+ supplier_part_detail: true,
},
groupByField: 'location',
buttons: [
diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py
index 088811f0f2..ea72957174 100644
--- a/InvenTree/stock/api.py
+++ b/InvenTree/stock/api.py
@@ -857,6 +857,17 @@ class StockList(generics.ListCreateAPIView):
print("After error:", str(updated_after))
pass
+ # Filter stock items which have a purchase price set
+ has_purchase_price = params.get('has_purchase_price', None)
+
+ if has_purchase_price is not None:
+ has_purchase_price = str2bool(has_purchase_price)
+
+ if has_purchase_price:
+ queryset = queryset.exclude(purchase_price=None)
+ else:
+ queryset = queryset.filter(purchase_price=None)
+
# Optionally, limit the maximum number of returned results
max_results = params.get('max_results', None)
diff --git a/InvenTree/templates/js/stock.js b/InvenTree/templates/js/stock.js
index b557f0c327..fba0fc2913 100644
--- a/InvenTree/templates/js/stock.js
+++ b/InvenTree/templates/js/stock.js
@@ -685,6 +685,20 @@ function loadStockTable(table, options) {
return renderLink(text, link);
}
},
+ {
+ field: 'supplier_part',
+ title: '{% trans "Supplier Part" %}',
+ formatter: function(value, row) {
+ if (!value) {
+ return '-';
+ }
+
+ var link = `/supplier-part/${row.supplier_part}/stock/`;
+ var text = `${row.supplier_part_detail.SKU}`;
+
+ return renderLink(text, link);
+ }
+ },
{
field: 'purchase_price',
title: '{% trans "Purchase Price" %}',
diff --git a/InvenTree/templates/js/table_filters.js b/InvenTree/templates/js/table_filters.js
index d02fa50d80..3dfb424edf 100644
--- a/InvenTree/templates/js/table_filters.js
+++ b/InvenTree/templates/js/table_filters.js
@@ -205,7 +205,12 @@ function getAvailableTableFilters(tableKey) {
batch: {
title: '{% trans "Batch" %}',
description: '{% trans "Batch code" %}',
- }
+ },
+ has_purchase_price: {
+ type: 'bool',
+ title: '{% trans "Has purchase price" %}',
+ description: '{% trans "Show stock items which have a purchase price set" %}',
+ },
};
}
diff --git a/InvenTree/templates/stats.html b/InvenTree/templates/stats.html
index 403030644a..eab8a8c9b6 100644
--- a/InvenTree/templates/stats.html
+++ b/InvenTree/templates/stats.html
@@ -63,7 +63,7 @@
{% trans "Email Settings" %} |
- {% trans "Email settings not configured" %}
+ {% trans "Email settings not configured" %}
|
diff --git a/docker/Dockerfile b/docker/Dockerfile
index e27bd5591a..72e6acc8ca 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:alpine as base
+FROM alpine:3.13 as base
# GitHub source
ARG repository="https://github.com/inventree/InvenTree.git"
@@ -57,7 +57,7 @@ RUN apk add --no-cache cairo cairo-dev pango pango-dev
RUN apk add --no-cache fontconfig ttf-droid ttf-liberation ttf-dejavu ttf-opensans ttf-ubuntu-font-family font-croscore font-noto
# Python
-RUN apk add --no-cache python3 python3-dev
+RUN apk add --no-cache python3 python3-dev py3-pip
# SQLite support
RUN apk add --no-cache sqlite
diff --git a/docker/start_dev_server.sh b/docker/start_dev_server.sh
index ad12ec023a..fcd178915c 100644
--- a/docker/start_dev_server.sh
+++ b/docker/start_dev_server.sh
@@ -32,7 +32,7 @@ echo "Starting InvenTree server..."
# Wait for the database to be ready
cd ${INVENTREE_HOME}/InvenTree
-python manage.py wait_for_db
+python3 manage.py wait_for_db
sleep 10
@@ -40,10 +40,10 @@ echo "Running InvenTree database migrations..."
# We assume at this stage that the database is up and running
# Ensure that the database schema are up to date
-python manage.py check || exit 1
-python manage.py migrate --noinput || exit 1
-python manage.py migrate --run-syncdb || exit 1
-python manage.py clearsessions || exit 1
+python3 manage.py check || exit 1
+python3 manage.py migrate --noinput || exit 1
+python3 manage.py migrate --run-syncdb || exit 1
+python3 manage.py clearsessions || exit 1
# Launch a development server
-python manage.py runserver ${INVENTREE_WEB_ADDR}:${INVENTREE_WEB_PORT}
+python3 manage.py runserver ${INVENTREE_WEB_ADDR}:${INVENTREE_WEB_PORT}
diff --git a/docker/start_dev_worker.sh b/docker/start_dev_worker.sh
index bfadc1f49a..7ee59ff28f 100644
--- a/docker/start_dev_worker.sh
+++ b/docker/start_dev_worker.sh
@@ -11,9 +11,9 @@ sleep 5
# Wait for the database to be ready
cd InvenTree
-python manage.py wait_for_db
+python3 manage.py wait_for_db
sleep 10
# Now we can launch the background worker process
-python manage.py qcluster
+python3 manage.py qcluster
diff --git a/docker/start_prod_server.sh b/docker/start_prod_server.sh
index 9d86b331eb..1bba2c9ed3 100644
--- a/docker/start_prod_server.sh
+++ b/docker/start_prod_server.sh
@@ -23,7 +23,7 @@ echo "Starting InvenTree server..."
# Wait for the database to be ready
cd $INVENTREE_MNG_DIR
-python manage.py wait_for_db
+python3 manage.py wait_for_db
sleep 10
@@ -31,12 +31,12 @@ echo "Running InvenTree database migrations and collecting static files..."
# We assume at this stage that the database is up and running
# Ensure that the database schema are up to date
-python manage.py check || exit 1
-python manage.py migrate --noinput || exit 1
-python manage.py migrate --run-syncdb || exit 1
-python manage.py prerender || exit 1
-python manage.py collectstatic --noinput || exit 1
-python manage.py clearsessions || exit 1
+python3 manage.py check || exit 1
+python3 manage.py migrate --noinput || exit 1
+python3 manage.py migrate --run-syncdb || exit 1
+python3 manage.py prerender || exit 1
+python3 manage.py collectstatic --noinput || exit 1
+python3 manage.py clearsessions || exit 1
# Now we can launch the server
gunicorn -c $INVENTREE_HOME/gunicorn.conf.py InvenTree.wsgi -b 0.0.0.0:$INVENTREE_WEB_PORT
\ No newline at end of file
diff --git a/docker/start_prod_worker.sh b/docker/start_prod_worker.sh
index ba9eb14d65..4a13d71230 100644
--- a/docker/start_prod_worker.sh
+++ b/docker/start_prod_worker.sh
@@ -6,9 +6,9 @@ sleep 5
# Wait for the database to be ready
cd $INVENTREE_MNG_DIR
-python manage.py wait_for_db
+python3 manage.py wait_for_db
sleep 10
# Now we can launch the background worker process
-python manage.py qcluster
\ No newline at end of file
+python3 manage.py qcluster
\ No newline at end of file