From 0fbd50fa4e7b9692f308dc0dcb6073c397de7cc1 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 26 Jun 2021 23:25:15 +0000
Subject: [PATCH] updated translation base
---
InvenTree/locale/de/LC_MESSAGES/django.po | 650 ++++++++++++----------
InvenTree/locale/en/LC_MESSAGES/django.po | 642 +++++++++++----------
InvenTree/locale/es/LC_MESSAGES/django.po | 644 +++++++++++----------
InvenTree/locale/fr/LC_MESSAGES/django.po | 646 +++++++++++----------
InvenTree/locale/it/LC_MESSAGES/django.po | 642 +++++++++++----------
InvenTree/locale/ja/LC_MESSAGES/django.po | 642 +++++++++++----------
InvenTree/locale/pl/LC_MESSAGES/django.po | 646 +++++++++++----------
InvenTree/locale/ru/LC_MESSAGES/django.po | 642 +++++++++++----------
InvenTree/locale/tr/LC_MESSAGES/django.po | 648 +++++++++++----------
InvenTree/locale/zh/LC_MESSAGES/django.po | 642 +++++++++++----------
10 files changed, 3568 insertions(+), 2876 deletions(-)
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index bdbb891250..eb84c0d246 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -35,8 +35,8 @@ msgstr "Datum eingeben"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:134
+#: order/forms.py:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "Bestätigen"
@@ -172,23 +172,23 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/settings.py:503
+#: InvenTree/settings.py:504
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:504
+#: InvenTree/settings.py:505
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Turkish"
msgstr "Türkisch"
@@ -446,7 +446,7 @@ msgid "Order target date"
msgstr "geplantes Bestelldatum"
#: 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -463,11 +463,11 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: 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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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 "Zieldatum für Bauauftrag-Fertigstellung."
#: 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
@@ -501,7 +501,7 @@ msgstr "Anzahl der zu bauenden Teile"
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:95 order/forms.py:240 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:247 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -893,8 +893,8 @@ msgstr "Benötigte Teile bestellen"
#: 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 "Teile bestellen"
@@ -977,7 +977,7 @@ msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: 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"
@@ -1183,7 +1183,7 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678
+#: build/templates/build/detail.html:46 order/forms.py:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -1433,56 +1433,56 @@ msgstr "Bauobjekt aktualisiert"
msgid "Add Build Order Attachment"
msgstr "Bauauftrags-Anhang hinzufügen"
-#: 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 "Anhang hinzugefügt"
-#: 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 "Anhang bearbeiten"
-#: 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 "Anhang aktualisiert"
-#: 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 "Anhang löschen"
-#: 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 "Anhang gelöscht"
-#: common/files.py:64
+#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
-#: common/files.py:69
+#: common/files.py:71
msgid "Error reading file (invalid format)"
msgstr "Fehler beim Lesen der Datei (ungültiges Format)"
-#: common/files.py:71
+#: common/files.py:73
msgid "Error reading file (incorrect dimension)"
msgstr "Fehler beim Lesen der Datei (falsche Größe)"
-#: common/files.py:73
+#: common/files.py:75
msgid "Error reading file (data could be corrupted)"
msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)"
-#: common/forms.py:39 templates/attachment_table.html:15
+#: common/forms.py:34 templates/attachment_table.html:15
msgid "File"
msgstr "Datei"
-#: common/forms.py:40
+#: common/forms.py:35
msgid "Select file to upload"
msgstr "Datei zum Hochladen auswählen"
-#: common/forms.py:55
+#: common/forms.py:50
msgid "{name.title()} File"
msgstr "{name.title()} Datei"
-#: common/forms.py:56
+#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:231
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
+#: common/models.py:237 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:231
+#: common/models.py:238
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:237
+#: common/models.py:244
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:238
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:270
+#: common/models.py:277
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:272 part/templates/part/detail.html:121
+#: common/models.py:279 part/templates/part/detail.html:121
msgid "days"
msgstr "Tage"
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr "Gruppieren nach Teil"
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr "Preis"
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr "Standard"
@@ -1856,27 +1864,30 @@ msgstr "Standard"
msgid "Current value"
msgstr "Aktueller Wert"
-#: common/views.py:32
+#: common/views.py:33
msgid "Change Setting"
msgstr "Einstellungen ändern"
-#: common/views.py:101
+#: common/views.py:102
msgid "Supplied value is not allowed"
msgstr "Angegebener Wert nicht erlaubt"
-#: common/views.py:110
+#: common/views.py:111
msgid "Supplied value must be a boolean"
msgstr "Angegebener Wert muss ein Wahrheitswert sein"
#: 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 "Datei hochgeladen"
#: 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 "Übereinstimmende Felder"
@@ -1884,10 +1895,25 @@ msgstr "Übereinstimmende Felder"
msgid "Match Items"
msgstr "Positionen zuordnen"
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr "Felder zuteilen fehlgeschlagen"
+#: common/views.py:586
+#, fuzzy
+#| msgid "Part Notes"
+msgid "Parts imported"
+msgstr "Teil-Bemerkungen"
+
+#: 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 "Vorheriger Schritt"
+
#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2051,7 @@ msgstr "Produziert diese Firma Teile?"
msgid "Base Part"
msgstr "Basisteil"
-#: 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 "Teil auswählen"
@@ -2173,7 +2199,7 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: 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 "Bestellung anlegen"
@@ -2246,7 +2272,7 @@ msgstr "Neues Herstellerteil"
#: 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"
@@ -2254,7 +2280,7 @@ msgstr "Optionen"
#: 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 "Teile bestellen"
@@ -2270,7 +2296,7 @@ msgstr "Teile löschen"
#: 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 "Neues Teil"
@@ -2297,7 +2323,7 @@ msgstr "Zulieferer-Bestand"
#: 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 "Exportieren"
@@ -2421,8 +2447,8 @@ msgid "Delete"
msgstr "Löschen"
#: 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr "Parameter"
@@ -2430,7 +2456,7 @@ msgstr "Parameter"
#: 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:64
msgid "New Parameter"
msgstr "Neuer Parameter"
@@ -2561,7 +2587,7 @@ msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
#: 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 "Preisstaffel hinzufügen"
@@ -2603,20 +2629,20 @@ msgstr "Firmen"
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:169 part/views.py:948
+#: company/views.py:169 part/views.py:1115
msgid "Download Image"
msgstr "Bild herunterladen"
-#: 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 "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:205 part/views.py:987
+#: company/views.py:205 part/views.py:1154
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: 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 "Angegebene URL ist kein gültiges Bild"
@@ -2684,15 +2710,15 @@ msgstr "Neues Zuliefererteil anlegen"
msgid "Delete Supplier Part"
msgstr "Zuliefererteil entfernen"
-#: company/views.py:860 part/views.py:2755
+#: company/views.py:860 part/views.py:2922
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: company/views.py:916 part/views.py:2799
+#: company/views.py:916 part/views.py:2966
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
-#: company/views.py:931 part/views.py:2813
+#: company/views.py:931 part/views.py:2980
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
@@ -2757,48 +2783,48 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
msgid "Filters"
msgstr "Filter"
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Bestellung aufgeben"
-#: order/forms.py:38 order/templates/order/order_base.html:54
+#: order/forms.py:45 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
+#: order/forms.py:56 order/forms.py:67 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:58
+#: order/forms.py:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr "Bestellung versenden"
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr "Teile in diesen Lagerort empfangen"
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr "Bestellungs-Referenz"
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Lieferung."
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr "Auftrag-Nummer eingeben"
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr "Seriennummern für BestandsObjekt eingeben"
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr "Menge der BestandsObjekt eingeben"
@@ -2867,7 +2893,7 @@ msgstr "Geplantes Lieferdatum für Auftrag."
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -2965,7 +2991,7 @@ msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
#: order/models.py:724 part/templates/part/navbar.html:109
-#: part/templates/part/order_prices.html:107
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr "Verkaufspreis"
@@ -3056,7 +3082,7 @@ msgstr "Aufgegeben"
#: 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"
@@ -3094,57 +3120,71 @@ msgstr "Notizen zur Bestellung"
#: 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 "Es fehlt eine Auswahl für die folgende benötigte Spalte"
#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr "Doppelte Auswahlen gefunden, siehe unten. Reparieren und erneut versuchen."
-#: order/templates/order/order_wizard/match_fields.html:27
-#: order/templates/order/order_wizard/match_parts.html:18
-#: order/templates/order/order_wizard/po_upload.html:40
-msgid "Previous Step"
-msgstr "Vorheriger Schritt"
-
#: 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 "Auswahl übertragen"
#: 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 "Datei-Felder"
#: 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 "Spalte entfernen"
#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
msgstr "Auswahl duplizieren"
#: 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 "Zeile entfernen"
-#: 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 "Fehler in den übermittelten Daten"
-#: 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 "Zeile"
-#: order/templates/order/order_wizard/match_parts.html:28
+#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
msgstr "Zulieferer-Teil auswählen"
@@ -3153,6 +3193,8 @@ msgid "Upload File for Purchase Order"
msgstr "Datei zur Bestellung hochladen"
#: 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 "Schritt %(step)s von %(count)s"
@@ -3242,8 +3284,8 @@ msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
#: 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 "Position hinzufügen"
@@ -3291,9 +3333,9 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: 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
@@ -3462,195 +3504,195 @@ msgstr "Diese Aktion wird die folgenden BestandsObjekt vom Auftrag entfernen"
msgid "Sales Order Attachments"
msgstr "Auftrags-Anhänge"
-#: order/views.py:104
+#: order/views.py:106
msgid "Add Purchase Order Attachment"
msgstr "Bestellungs-Anhang hinzufügen"
-#: order/views.py:154
+#: order/views.py:156
msgid "Add Sales Order Attachment"
msgstr "Auftrags-Anhang hinzufügen"
-#: order/views.py:346
+#: order/views.py:348
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: order/views.py:381
+#: order/views.py:383
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
-#: order/views.py:401
+#: order/views.py:403
msgid "Edit Sales Order"
msgstr "Auftrag bearbeiten"
-#: order/views.py:417
+#: order/views.py:419
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:426 order/views.py:452
+#: order/views.py:428 order/views.py:454
msgid "Confirm order cancellation"
msgstr "Bestellstornierung bestätigen"
-#: order/views.py:429 order/views.py:455
+#: order/views.py:431 order/views.py:457
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/views.py:443
+#: order/views.py:445
msgid "Cancel sales order"
msgstr "Auftrag stornieren"
-#: order/views.py:469
+#: order/views.py:471
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: order/views.py:478
+#: order/views.py:480
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:488
+#: order/views.py:490
msgid "Purchase order issued"
msgstr "Bestellung plaziert"
-#: order/views.py:499
+#: order/views.py:501
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
-#: order/views.py:515
+#: order/views.py:517
msgid "Confirm order completion"
msgstr "Fertigstellung bestätigen"
-#: order/views.py:526
+#: order/views.py:528
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:536
+#: order/views.py:538
msgid "Ship Order"
msgstr "Versenden"
-#: order/views.py:552
+#: order/views.py:554
msgid "Confirm order shipment"
msgstr "Versand bestätigen"
-#: order/views.py:558
+#: order/views.py:560
msgid "Could not ship order"
msgstr "Versand fehlgeschlagen"
-#: order/views.py:584
+#: order/views.py:607
msgid "Match Supplier Parts"
msgstr "Zuliefererteile zuordnen"
-#: order/views.py:798
+#: order/views.py:804
msgid "Receive Parts"
msgstr "Teile empfangen"
-#: order/views.py:868
+#: order/views.py:874
msgid "Items received"
msgstr "Anzahl empfangener Positionen"
-#: order/views.py:882
+#: order/views.py:888
msgid "No destination set"
msgstr "Kein Ziel gesetzt"
-#: order/views.py:927
+#: order/views.py:933
msgid "Error converting quantity to number"
msgstr "Fehler beim Konvertieren zu Zahl"
-#: order/views.py:933
+#: order/views.py:939
msgid "Receive quantity less than zero"
msgstr "Anzahl kleiner null empfangen"
-#: order/views.py:939
+#: order/views.py:945
msgid "No lines specified"
msgstr "Keine Zeilen angegeben"
-#: 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 "{n} Teile bestellt"
-#: order/views.py:1330
+#: order/views.py:1336
msgid "Supplier part must be specified"
msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/views.py:1336
+#: order/views.py:1342
msgid "Supplier must match for Part and Order"
msgstr "Zulieferer muss zu Teil und Bestellung passen"
-#: order/views.py:1467 order/views.py:1485
+#: order/views.py:1473 order/views.py:1491
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: order/views.py:1501 order/views.py:1513
+#: order/views.py:1507 order/views.py:1519
msgid "Delete Line Item"
msgstr "Position löschen"
-#: order/views.py:1506 order/views.py:1518
+#: order/views.py:1512 order/views.py:1524
msgid "Deleted line item"
msgstr "Position gelöscht"
-#: order/views.py:1531
+#: order/views.py:1537
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: order/views.py:1576
+#: order/views.py:1582
#, python-brace-format
msgid "Allocated {n} items"
msgstr "{n} Positionen zugeordnet"
-#: order/views.py:1592
+#: order/views.py:1598
msgid "Select line item"
msgstr "Position auswählen"
-#: order/views.py:1623
+#: order/views.py:1629
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr "Kein passends Teil für Seriennummer {serial} gefunden"
-#: order/views.py:1633
+#: order/views.py:1639
#, python-brace-format
msgid "{serial} is not in stock"
msgstr "{serial} ist nicht auf Lager"
-#: order/views.py:1641
+#: order/views.py:1647
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr "{serial} bereits einem Auftrag zugeordnet"
-#: order/views.py:1695
+#: order/views.py:1701
msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Auftrag zuweisen"
-#: order/views.py:1769
+#: order/views.py:1775
msgid "Edit Allocation Quantity"
msgstr "Zuordnung bearbeiten"
-#: order/views.py:1784
+#: order/views.py:1790
msgid "Remove allocation"
msgstr "Zuordnung entfernen"
-#: order/views.py:1856
+#: order/views.py:1862
msgid "Sales order not found"
msgstr "Auftrag nicht gefunden"
-#: order/views.py:1862
+#: order/views.py:1868
msgid "Price not found"
msgstr "Preis nicht gefunden"
-#: order/views.py:1865
+#: order/views.py:1871
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr "Stückpreis für {part} auf {price} aktualisiert"
-#: order/views.py:1870
+#: order/views.py:1876
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
#: part/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 "Standard-Lagerort"
@@ -3828,8 +3870,8 @@ msgstr "Standard-Stichworte für Teile dieser Kategorie"
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: 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 "Teil-Kategorien"
@@ -3879,7 +3921,7 @@ msgstr "Variante von"
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: 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 "Schlüsselwörter"
@@ -4153,7 +4195,7 @@ msgstr "Varianten zulassen"
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2394 part/views.py:1692 part/views.py:1744
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
@@ -4250,7 +4292,7 @@ msgstr "Stückliste bearbeiten"
msgid "Validate Bill of Materials"
msgstr "Stückliste kontrollieren"
-#: 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 "Stückliste exportieren"
@@ -4266,7 +4308,7 @@ msgstr "Ausgewählte Stücklistenpositionen löschen?"
msgid "All selected BOM items will be deleted"
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
-#: 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 "Neues Teil anlegen"
@@ -4303,7 +4345,7 @@ msgid "Select Part"
msgstr "Teil auswählen"
#: 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 "Neues Teil anlegen"
@@ -4344,87 +4386,87 @@ msgstr "Gefertigte Teile"
msgid "Start New Build"
msgstr "Neuen Bauauftrag beginnen"
-#: part/templates/part/category.html:24
+#: part/templates/part/category.html:33
msgid "All parts"
msgstr "Alle Teile"
-#: 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 "Teil-Kategorie anlegen"
-#: part/templates/part/category.html:35
+#: part/templates/part/category.html:44
msgid "Edit part category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/templates/part/category.html:40
+#: part/templates/part/category.html:49
msgid "Delete part category"
msgstr "Teil-Kategorie löschen"
-#: 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 "Kategorie-Details"
-#: part/templates/part/category.html:55
+#: part/templates/part/category.html:64
msgid "Category Path"
msgstr "Pfad zur Kategorie"
-#: part/templates/part/category.html:60
+#: part/templates/part/category.html:69
msgid "Category Description"
msgstr "Kategorie-Beschreibung"
-#: 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 "Unter-Kategorien"
-#: part/templates/part/category.html:84
+#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
msgstr "Teile (inklusive Unter-Kategorien)"
-#: part/templates/part/category.html:113
+#: part/templates/part/category.html:122
msgid "Export Part Data"
msgstr "Teile-Daten exportieren"
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set category"
msgstr "Teil-Kategorie auswählen"
-#: part/templates/part/category.html:125
+#: part/templates/part/category.html:134
msgid "Set Category"
msgstr "Teil-Kategorie auswählen"
-#: part/templates/part/category.html:128
+#: part/templates/part/category.html:137
msgid "Export Data"
msgstr "Exportieren"
-#: part/templates/part/category.html:132
+#: part/templates/part/category.html:141
msgid "View list display"
msgstr "Listenansicht anzeigen"
-#: part/templates/part/category.html:135
+#: part/templates/part/category.html:144
msgid "View grid display"
msgstr "Rasteransicht anzeigen"
-#: 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 "Neuen Lagerort anlegen"
-#: 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 "Neue Kategorie"
-#: part/templates/part/category.html:215
+#: part/templates/part/category.html:224
msgid "Create new category"
msgstr "Teil-Kategorie anlegen"
-#: part/templates/part/category.html:245
+#: part/templates/part/category.html:254
msgid "Create new Part Category"
msgstr "Neue Teil-Kategorie anlegen"
-#: 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 "Neuen Lagerort erstellen"
@@ -4463,12 +4505,19 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. verschoben"
+#: part/templates/part/category_navbar.html:37
+#: part/templates/part/category_navbar.html:40
+#, fuzzy
+#| msgid "Important dates"
+msgid "Import Parts"
+msgstr "wichtige Daten"
+
#: part/templates/part/category_parametric.html:10
#: part/templates/part/navbar.html:21 part/templates/part/params.html:10
msgid "Part Parameters"
msgstr "Teilparameter"
-#: 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 "Teil duplizieren"
@@ -4572,12 +4621,23 @@ msgstr "Teil ist aktiv"
msgid "Part is not active"
msgstr "Teil ist nicht aktiv"
+#: 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
+#, fuzzy
+#| msgid "Report asset file"
+msgid "Import Parts from File"
+msgstr "Berichts-Ressource"
+
#: part/templates/part/internal_prices.html:11
#: part/templates/part/navbar.html:100
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 ""
@@ -4643,7 +4703,7 @@ msgstr "Bestellpreisinformationen"
msgid "Order Price"
msgstr "Bestellpreis"
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr "Interner Preis"
@@ -4669,24 +4729,24 @@ msgstr "Verknüpfte Teile"
msgid "Part Notes"
msgstr "Teil-Bemerkungen"
-#: part/templates/part/order_prices.html:24
+#: part/templates/part/order_prices.html:25
#: part/templates/part/part_base.html:282
msgid "Calculate"
msgstr "Berechnen"
-#: part/templates/part/order_prices.html:31
+#: part/templates/part/order_prices.html:32
msgid "Pricing ranges"
msgstr "Preisspannen"
-#: 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 "Zulieferer-Preise"
-#: 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
@@ -4694,10 +4754,10 @@ msgstr "Zulieferer-Preise"
msgid "Unit Cost"
msgstr "Stückpreis"
-#: 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
@@ -4705,51 +4765,51 @@ msgstr "Stückpreis"
msgid "Total Cost"
msgstr "Gesamtkosten"
-#: 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 "Keine Zulieferer-Preise verfügbar"
-#: 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 "Stücklistenpreise"
-#: 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 "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig"
-#: 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 "Keine Stücklisten-Preise verfügbar"
-#: 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 "Keine Preise für dieses Teil verfügbar"
-#: part/templates/part/order_prices.html:138
+#: part/templates/part/order_prices.html:139
msgid "Stock Pricing"
msgstr "Bestandspreise"
-#: 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 "Für dieses Teil sind keine Bestandspreise verfügbar."
-#: part/templates/part/order_prices.html:165
+#: part/templates/part/order_prices.html:166
#, python-format
msgid "Single Price - %(currency)s"
msgstr "Einzelpreis - %(currency)s"
-#: part/templates/part/order_prices.html:177
+#: part/templates/part/order_prices.html:178
#, python-format
msgid "Single Price Difference - %(currency)s"
msgstr "Einzelpreisdifferenz - %(currency)s"
-#: part/templates/part/order_prices.html:189
+#: part/templates/part/order_prices.html:190
#, python-format
msgid "Part Single Price - %(currency)s"
msgstr "Einzelpreis für Zuliefererteil- %(currency)s"
@@ -4968,220 +5028,226 @@ msgstr "neue Variante anlegen"
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/views.py:90
+#: part/views.py:95
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/views.py:145
+#: part/views.py:150
msgid "Delete Related Part"
msgstr "verknüpftes Teil entfernen"
-#: part/views.py:159
+#: part/views.py:164
msgid "Add part attachment"
msgstr "Teilanhang hinzufügen"
-#: part/views.py:212 templates/attachment_table.html:32
+#: part/views.py:217 templates/attachment_table.html:32
msgid "Edit attachment"
msgstr "Anhang bearbeiten"
-#: part/views.py:216
+#: part/views.py:221
msgid "Part attachment updated"
msgstr "Teilanhang aktualisiert"
-#: part/views.py:231
+#: part/views.py:236
msgid "Delete Part Attachment"
msgstr "Teilanhang löschen"
-#: part/views.py:239
+#: part/views.py:244
msgid "Deleted part attachment"
msgstr "Teilanhang gelöscht"
-#: part/views.py:248
+#: part/views.py:253
msgid "Create Test Template"
msgstr "Testvorlage anlegen"
-#: part/views.py:275
+#: part/views.py:280
msgid "Edit Test Template"
msgstr "Testvorlage bearbeiten"
-#: part/views.py:289
+#: part/views.py:294
msgid "Delete Test Template"
msgstr "Testvorlage löschen"
-#: part/views.py:296
+#: part/views.py:301
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:346
+#: part/views.py:351
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:381
+#: part/views.py:386
msgid "Create Variant"
msgstr "Variante anlegen"
-#: part/views.py:466
+#: part/views.py:471
msgid "Copied part"
msgstr "Teil kopiert"
-#: 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 "Übereinstimmung gefunden - Teil trotzdem anlegen"
-#: part/views.py:590
+#: part/views.py:595
msgid "Created new part"
msgstr "Neues Teil angelegt"
-#: part/views.py:925
+#: part/views.py:763
+#, fuzzy
+#| msgid "Reference"
+msgid "Match References"
+msgstr "Referenz"
+
+#: part/views.py:1092
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:1027
+#: part/views.py:1194
msgid "Upload Part Image"
msgstr "Teilbild hochladen"
-#: part/views.py:1033 part/views.py:1068
+#: part/views.py:1200 part/views.py:1235
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:1042
+#: part/views.py:1209
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:1071
+#: part/views.py:1238
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:1082
+#: part/views.py:1249
msgid "Edit Part Properties"
msgstr "Teileigenschaften bearbeiten"
-#: part/views.py:1117
+#: part/views.py:1284
msgid "Duplicate BOM"
msgstr "Stückliste duplizieren"
-#: part/views.py:1147
+#: part/views.py:1314
msgid "Confirm duplication of BOM from parent"
msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
-#: part/views.py:1168
+#: part/views.py:1335
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/views.py:1189
+#: part/views.py:1356
msgid "Confirm that the BOM is valid"
msgstr "Bestätigen, dass Stückliste korrekt ist"
-#: part/views.py:1200
+#: part/views.py:1367
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: part/views.py:1334
+#: part/views.py:1501
msgid "No BOM file provided"
msgstr "Keine Stückliste angegeben"
-#: part/views.py:1695
+#: part/views.py:1862
msgid "Enter a valid quantity"
msgstr "Bitte eine gültige Anzahl eingeben"
-#: part/views.py:1720 part/views.py:1723
+#: part/views.py:1887 part/views.py:1890
msgid "Select valid part"
msgstr "Bitte ein gültiges Teil auswählen"
-#: part/views.py:1729
+#: part/views.py:1896
msgid "Duplicate part selected"
msgstr "Teil doppelt ausgewählt"
-#: part/views.py:1767
+#: part/views.py:1934
msgid "Select a part"
msgstr "Teil auswählen"
-#: part/views.py:1773
+#: part/views.py:1940
msgid "Selected part creates a circular BOM"
msgstr "gewähltes Teil erzeugt rekursive Stückliste"
-#: part/views.py:1777
+#: part/views.py:1944
msgid "Specify quantity"
msgstr "Anzahl angeben"
-#: part/views.py:2039
+#: part/views.py:2206
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:2046
+#: part/views.py:2213
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:2055
+#: part/views.py:2222
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:2196
+#: part/views.py:2363
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:2206
+#: part/views.py:2373
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:2213
+#: part/views.py:2380
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:2221
+#: part/views.py:2388
msgid "Create Part Parameter"
msgstr "Teilparameter anlegen"
-#: part/views.py:2271
+#: part/views.py:2438
msgid "Edit Part Parameter"
msgstr "Teilparameter bearbeiten"
-#: part/views.py:2285
+#: part/views.py:2452
msgid "Delete Part Parameter"
msgstr "Teilparameter löschen"
-#: part/views.py:2345
+#: part/views.py:2512
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:2383
+#: part/views.py:2550
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:2389
+#: part/views.py:2556
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:2441
+#: part/views.py:2608
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2542
+#: part/views.py:2709
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2598
+#: part/views.py:2765
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2617
+#: part/views.py:2784
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2687
+#: part/views.py:2854
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2743
+#: part/views.py:2910
msgid "Confim BOM item deletion"
msgstr "löschen von Stücklisten-Position bestätigen"
-#: 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 ""
@@ -6292,12 +6358,12 @@ msgid "No category parameter templates found"
msgstr "Keine Kategorie-Parametervorlagen gefunden"
#: templates/InvenTree/settings/category.html:70
-#: templates/InvenTree/settings/part.html:85
+#: templates/InvenTree/settings/part.html:101
msgid "Edit Template"
msgstr "Vorlage bearbeiten"
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr "Vorlage löschen"
@@ -6346,10 +6412,22 @@ msgid "Part Options"
msgstr "Teil-Optionen"
#: templates/InvenTree/settings/part.html:44
+#, fuzzy
+#| msgid "Part Notes"
+msgid "Part Import"
+msgstr "Teil-Bemerkungen"
+
+#: templates/InvenTree/settings/part.html:47
+#, fuzzy
+#| msgid "Import BOM data"
+msgid "Import Part"
+msgstr "Stückliste importieren"
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr "Teil-Parametervorlage"
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr "Keine Teilparametervorlagen gefunden"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 594efcd8cd..4921ba5632 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -36,8 +36,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -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,7 +447,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
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 ""
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1672,184 +1672,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1857,27 +1865,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,10 +1896,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2026,7 +2050,7 @@ msgstr ""
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 ""
@@ -2174,7 +2198,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 ""
@@ -2245,7 +2269,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 +2277,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 +2293,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 +2320,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 ""
@@ -2420,8 +2444,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2429,7 +2453,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2560,7 +2584,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 ""
@@ -2602,20 +2626,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 +2707,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,48 +2780,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2866,7 +2890,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2964,7 +2988,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3055,7 +3079,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 +3117,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 +3190,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 +3281,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 +3330,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
@@ -3461,195 +3501,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 +3867,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 +3918,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 ""
@@ -4152,7 +4192,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4249,7 +4289,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 +4305,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 +4342,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 +4383,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 +4502,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
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 ""
@@ -4571,12 +4616,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
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 ""
@@ -4642,7 +4696,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4668,24 +4722,24 @@ msgstr ""
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 +4747,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 +4758,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 ""
@@ -4967,220 +5021,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 ""
@@ -6287,12 +6345,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6341,10 +6399,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 59ea28db3f..cee471d1f1 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-25 14:06\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "Confirmar"
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -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 ""
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr "días"
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr ""
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 ""
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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 ""
@@ -2268,7 +2292,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 ""
@@ -2295,7 +2319,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"
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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 ""
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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 ""
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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 ""
@@ -4461,12 +4501,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
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 ""
@@ -4570,12 +4615,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
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 ""
@@ -4641,7 +4695,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4721,24 @@ msgstr ""
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
@@ -4692,10 +4746,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
@@ -4703,51 +4757,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 ""
@@ -4966,220 +5020,226 @@ 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
+#, fuzzy
+#| msgid "Reference"
+msgid "Match References"
+msgstr "Referencia"
+
+#: 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 ""
@@ -6286,12 +6346,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6400,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 27905513f4..6113e5aa1a 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "Confirmer"
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -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"
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr "jours"
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr ""
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 ""
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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 ""
@@ -2268,7 +2292,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 ""
@@ -2295,7 +2319,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 ""
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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 ""
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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 ""
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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 ""
@@ -4461,12 +4501,19 @@ 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
+#, fuzzy
+#| msgid "Order Parts"
+msgid "Import Parts"
+msgstr "Commander des pièces"
+
#: part/templates/part/category_parametric.html:10
#: part/templates/part/navbar.html:21 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 ""
@@ -4570,12 +4617,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
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 ""
@@ -4641,7 +4697,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4723,24 @@ msgstr ""
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
@@ -4692,10 +4748,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
@@ -4703,51 +4759,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 ""
@@ -4966,220 +5022,226 @@ 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
+#, fuzzy
+#| msgid "Reference"
+msgid "Match References"
+msgstr "Référence"
+
+#: 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 ""
@@ -6286,12 +6348,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6402,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index b5a1bf31e0..f36ddc6b0b 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
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 ""
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr ""
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 ""
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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 ""
@@ -2268,7 +2292,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 ""
@@ -2295,7 +2319,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 ""
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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 ""
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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 ""
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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 ""
@@ -4461,12 +4501,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
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 ""
@@ -4570,12 +4615,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
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 ""
@@ -4641,7 +4695,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4721,24 @@ msgstr ""
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
@@ -4692,10 +4746,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
@@ -4703,51 +4757,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 ""
@@ -4966,220 +5020,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 ""
@@ -6286,12 +6344,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6398,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index ab65f0ee85..6241f46407 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
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 ""
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr ""
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 ""
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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 ""
@@ -2268,7 +2292,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 ""
@@ -2295,7 +2319,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 ""
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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 ""
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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 ""
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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 ""
@@ -4461,12 +4501,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
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 ""
@@ -4570,12 +4615,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
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 ""
@@ -4641,7 +4695,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4721,24 @@ msgstr ""
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
@@ -4692,10 +4746,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
@@ -4703,51 +4757,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 ""
@@ -4966,220 +5020,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 ""
@@ -6286,12 +6344,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6398,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index b61b5d0a83..c0e3225f55 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "Potwierdź"
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -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"
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:231
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
+#: common/models.py:237 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:231
+#: common/models.py:238
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:237
+#: common/models.py:244
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:238
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr "dni"
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr "Grupuj według komponentu"
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr "Ustawienia wartości"
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr "Cena"
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr "Domyślny"
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr "Czy to przedsiębiorstwo produkuje części?"
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ęść"
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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"
@@ -2268,7 +2292,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"
@@ -2295,7 +2319,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"
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr "Parametry"
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr "Filtry"
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr "Wyślij zamówienie"
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr "Wprowadź ilość produktów magazynowych"
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr "Cena sprzedaży"
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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"
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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"
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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ą"
@@ -4461,12 +4501,19 @@ 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
+#, fuzzy
+#| msgid "Import BOM data"
+msgid "Import Parts"
+msgstr "Importuj dane BOM"
+
#: part/templates/part/category_parametric.html:10
#: part/templates/part/navbar.html:21 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ęść"
@@ -4570,12 +4617,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
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 ""
@@ -4641,7 +4697,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4723,24 @@ msgstr ""
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
@@ -4692,10 +4748,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
@@ -4703,51 +4759,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 ""
@@ -4966,220 +5022,226 @@ 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
+#, fuzzy
+#| msgid "Reference"
+msgid "Match References"
+msgstr "Referencja"
+
+#: 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 ""
@@ -6286,12 +6348,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6402,22 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+#, fuzzy
+#| msgid "Parent Part"
+msgid "Part Import"
+msgstr "Część nadrzędna"
+
+#: templates/InvenTree/settings/part.html:47
+#, fuzzy
+#| msgid "Import BOM data"
+msgid "Import Part"
+msgstr "Importuj dane BOM"
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index a73d84abfd..9ab3e893eb 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "Подтвердить"
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
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 ""
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr ""
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 ""
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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 ""
@@ -2268,7 +2292,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 ""
@@ -2295,7 +2319,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 ""
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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 ""
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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 ""
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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 ""
@@ -4461,12 +4501,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
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 ""
@@ -4570,12 +4615,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
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 ""
@@ -4641,7 +4695,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4721,24 @@ msgstr ""
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
@@ -4692,10 +4746,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
@@ -4703,51 +4757,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 ""
@@ -4966,220 +5020,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 ""
@@ -6286,12 +6344,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6398,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 9cc215e8fb..3836aa8489 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "Onay"
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -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"
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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"
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
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:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,25 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: common/views.py:586
+#, fuzzy
+#| msgid "Part Test Templates"
+msgid "Parts imported"
+msgstr "Parça Test Şablonları"
+
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2051,7 @@ msgstr ""
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 ""
@@ -2173,7 +2199,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"
@@ -2244,7 +2270,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"
@@ -2252,7 +2278,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 ""
@@ -2268,7 +2294,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 ""
@@ -2295,7 +2321,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 ""
@@ -2419,8 +2445,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2454,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2585,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 ""
@@ -2601,20 +2627,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"
@@ -2682,15 +2708,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 ""
@@ -2755,48 +2781,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr "Parçaları bu konuma alın"
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr "Stok kalemi seri numaları girin"
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2891,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2989,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3080,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"
@@ -3092,57 +3118,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"
@@ -3151,6 +3191,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 ""
@@ -3240,8 +3282,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 ""
@@ -3289,9 +3331,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
@@ -3460,195 +3502,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"
@@ -3826,8 +3868,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"
@@ -3877,7 +3919,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 ""
@@ -4151,7 +4193,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4290,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 ""
@@ -4264,7 +4306,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 ""
@@ -4301,7 +4343,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 ""
@@ -4342,87 +4384,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"
@@ -4461,12 +4503,19 @@ 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
+#, fuzzy
+#| msgid "Allocate Parts"
+msgid "Import Parts"
+msgstr "Parçaları Tahsis Et"
+
#: part/templates/part/category_parametric.html:10
#: part/templates/part/navbar.html:21 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 ""
@@ -4570,12 +4619,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
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 ""
@@ -4641,7 +4699,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4725,24 @@ msgstr ""
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
@@ -4692,10 +4750,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
@@ -4703,51 +4761,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 ""
@@ -4966,220 +5024,226 @@ 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
+#, fuzzy
+#| msgid "Reference"
+msgid "Match References"
+msgstr "Referans"
+
+#: 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 ""
@@ -6286,12 +6350,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:101
msgid "Edit Template"
msgstr "Şablonu Düzenle"
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr "Şablonu Sil"
@@ -6340,10 +6404,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr "Parça Parametre Şablonu"
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 511c6a7fb3..b6ac9cd07b 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-26 23:02+0000\n"
+"POT-Creation-Date: 2021-06-26 23:25+0000\n"
"PO-Revision-Date: 2021-06-24 21:40\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -35,8 +35,8 @@ 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:34 order/forms.py:45 order/forms.py:56 order/forms.py:67
+#: order/forms.py:78 part/forms.py:134
msgid "Confirm"
msgstr "确认"
@@ -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,7 +446,7 @@ 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:121 order/forms.py:156
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
@@ -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
+#: build/templates/build/detail.html:31 common/models.py:727
#: 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
+#: order/forms.py:200 order/forms.py:218 order/forms.py:253 order/forms.py:275
+#: order/forms.py:292 order/models.py:617 order/models.py:841
+#: 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
@@ -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:247 stock/forms.py:118
msgid "Serial Numbers"
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 ""
@@ -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"
@@ -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:92 order/models.py:678
#: order/templates/order/purchase_order_detail.html:239
#: order/templates/order/receive_parts.html:25 stock/forms.py:169
#: stock/forms.py:375
@@ -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 ""
@@ -1671,184 +1671,192 @@ msgid "Display available part quantity in some forms"
msgstr ""
#: common/models.py:209
-msgid "Show Price in Forms"
+msgid "Show Import in Views"
msgstr ""
#: common/models.py:210
-msgid "Display part price in some forms"
+msgid "Display the import wizard in some part views"
msgstr ""
#: common/models.py:216
-msgid "Internal Prices"
+msgid "Show Price in Forms"
msgstr ""
#: common/models.py:217
-msgid "Enable internal prices for parts"
+msgid "Display part price in some forms"
msgstr ""
#: common/models.py:223
-msgid "Internal Price as BOM-Price"
+msgid "Internal Prices"
msgstr ""
#: common/models.py:224
-msgid "Use the internal price (if set) in BOM-price calculations"
+msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:230 templates/stats.html:25
-msgid "Debug Mode"
+#: common/models.py:230
+msgid "Internal Price as BOM-Price"
msgstr ""
#: common/models.py:231
-msgid "Generate reports in debug mode (HTML output)"
+msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:237
-msgid "Page Size"
+#: common/models.py:237 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
#: common/models.py:238
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:244
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:245
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:248
+#: common/models.py:255
msgid "Test Reports"
msgstr ""
-#: common/models.py:249
+#: common/models.py:256
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:255
+#: common/models.py:262
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:256
+#: common/models.py:263
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:262
+#: common/models.py:269
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:263
+#: common/models.py:270
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:269
+#: common/models.py:276
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:270
+#: common/models.py:277
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:279 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:277
+#: common/models.py:284
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:278
+#: common/models.py:285
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:284
+#: common/models.py:291
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:285
+#: common/models.py:292
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:291
+#: common/models.py:298
msgid "Group by Part"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:305
+#: common/models.py:312
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:313
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:311
+#: common/models.py:318
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:312
+#: common/models.py:319
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:316
+#: common/models.py:323
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:317
+#: common/models.py:324
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:322
+#: common/models.py:329
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:323
+#: common/models.py:330
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:546
+#: common/models.py:553
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:548
+#: common/models.py:555
msgid "Settings value"
msgstr ""
-#: common/models.py:583
+#: common/models.py:590
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:606
+#: common/models.py:613
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:617
+#: common/models.py:624
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:640
+#: common/models.py:647
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:721 company/forms.py:192
+#: common/models.py:728 company/forms.py:192
msgid "Price break quantity"
msgstr ""
-#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:736 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
msgid "Price"
msgstr ""
-#: common/models.py:730
+#: common/models.py:737
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:822
+#: common/models.py:829
msgid "Default"
msgstr ""
@@ -1856,27 +1864,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,10 +1895,23 @@ msgstr ""
msgid "Match Items"
msgstr ""
-#: common/views.py:479
+#: common/views.py:531
msgid "Fields matching failed"
msgstr ""
+#: 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:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
@@ -2025,7 +2049,7 @@ msgstr ""
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 ""
@@ -2173,7 +2197,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 ""
@@ -2244,7 +2268,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"
@@ -2252,7 +2276,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 ""
@@ -2268,7 +2292,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 ""
@@ -2295,7 +2319,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 ""
@@ -2419,8 +2443,8 @@ 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/category_navbar.html:46
+#: part/templates/part/category_navbar.html:49
#: part/templates/part/navbar.html:24
msgid "Parameters"
msgstr ""
@@ -2428,7 +2452,7 @@ 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:64
msgid "New Parameter"
msgstr ""
@@ -2559,7 +2583,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 ""
@@ -2601,20 +2625,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 ""
@@ -2682,15 +2706,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 ""
@@ -2755,48 +2779,48 @@ msgstr ""
msgid "Filters"
msgstr ""
-#: order/forms.py:27 order/templates/order/order_base.html:47
+#: order/forms.py:34 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:45 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:56 order/forms.py:67 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:78 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:86
+#: order/forms.py:93
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:108
+#: order/forms.py:115
msgid "Purchase Order reference"
msgstr ""
-#: order/forms.py:115
+#: order/forms.py:122
msgid "Target date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:143
+#: order/forms.py:150
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:150 order/models.py:476
+#: order/forms.py:157 order/models.py:476
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:242
+#: order/forms.py:249
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:248
+#: order/forms.py:255
msgid "Enter quantity of stock items"
msgstr ""
@@ -2865,7 +2889,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:246 part/views.py:1686 stock/models.py:304
+#: order/models.py:246 part/views.py:1853 stock/models.py:304
#: stock/models.py:1020
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2963,7 +2987,7 @@ 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
+#: part/templates/part/order_prices.html:108
#: part/templates/part/part_pricing.html:97
msgid "Sale Price"
msgstr ""
@@ -3054,7 +3078,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"
@@ -3092,57 +3116,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 ""
@@ -3151,6 +3189,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 ""
@@ -3240,8 +3280,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 ""
@@ -3289,9 +3329,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
@@ -3460,195 +3500,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 ""
@@ -3826,8 +3866,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 ""
@@ -3877,7 +3917,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 ""
@@ -4151,7 +4191,7 @@ 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
+#: part/models.py:2394 part/views.py:1859 part/views.py:1911
#: stock/models.py:294
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4248,7 +4288,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 ""
@@ -4264,7 +4304,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 ""
@@ -4301,7 +4341,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 ""
@@ -4342,87 +4382,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 ""
@@ -4461,12 +4501,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
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 ""
@@ -4570,12 +4615,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
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 ""
@@ -4641,7 +4695,7 @@ msgstr ""
msgid "Order Price"
msgstr ""
-#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93
+#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:94
#: part/templates/part/part_pricing.html:82
msgid "Internal Price"
msgstr ""
@@ -4667,24 +4721,24 @@ msgstr ""
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
@@ -4692,10 +4746,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
@@ -4703,51 +4757,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 ""
@@ -4966,220 +5020,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 ""
@@ -6286,12 +6344,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:101
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/category.html:71
-#: templates/InvenTree/settings/part.html:86
+#: templates/InvenTree/settings/part.html:102
msgid "Delete Template"
msgstr ""
@@ -6340,10 +6398,18 @@ msgid "Part Options"
msgstr ""
#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:60
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/part.html:65
+#: templates/InvenTree/settings/part.html:81
msgid "No part parameter templates found"
msgstr ""