From 013d42de7ade2fe5e405f5c3a29511c3f08e9760 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 18 May 2021 19:20:24 +1000 Subject: [PATCH] L10 merge (#1595) * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * Adds a commit message * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * New Crowdin updates (#1551) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * New Crowdin updates (#1552) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * New Crowdin updates (#1568) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * New Crowdin updates (#1570) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- InvenTree/locale/de/LC_MESSAGES/django.po | 1946 +++++++++------- InvenTree/locale/en/LC_MESSAGES/django.po | 1781 +++++++------- InvenTree/locale/es/LC_MESSAGES/django.po | 1923 ++++++++------- InvenTree/locale/fr/LC_MESSAGES/django.po | 1823 ++++++++------- InvenTree/locale/it/LC_MESSAGES/django.po | 1797 +++++++------- InvenTree/locale/ja/LC_MESSAGES/django.po | 1797 +++++++------- InvenTree/locale/pl/LC_MESSAGES/django.po | 2581 +++++++++++---------- InvenTree/locale/ru/LC_MESSAGES/django.po | 1797 +++++++------- InvenTree/locale/tr/LC_MESSAGES/django.po | 1931 ++++++++------- InvenTree/locale/zh/LC_MESSAGES/django.po | 1837 ++++++++------- crowdin.yml | 3 + 11 files changed, 10665 insertions(+), 8551 deletions(-) diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index d8342de36c..300a639a69 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 10:02\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: de\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "Kategorie auswählen" msgid "Duplicate serial: {n}" msgstr "Doppelte Seriennummer: {n}" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -101,7 +106,7 @@ msgstr "Keine Seriennummern gefunden" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "Anhang" @@ -117,9 +122,9 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "Benutzer" @@ -127,8 +132,8 @@ msgstr "Benutzer" msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "Name" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "Name" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "Beschreibung" @@ -166,23 +171,23 @@ msgstr "Beschreibung (optional)" msgid "parent" msgstr "Eltern" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "Türkisch" @@ -198,60 +203,136 @@ msgstr "E-Mail-Backend nicht konfiguriert" msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "Ausstehend" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "Platziert" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "Fertig" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "Storniert" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "Verloren" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "Zurückgegeben" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "Versendet" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "erfordert Eingriff" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "Beschädigt" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "Zerstört" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "Zurückgewiesen" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "Alter Lagerbestands-Tracking-Eintrag" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "Lagerbestand erstellt" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "Lagerbestand bearbeitet" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "Seriennummer hinzugefügt" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "Lagerbestand gezählt" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "Lagerbestand manuell hinzugefügt" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "Lagerbestand manuell entfernt" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "Standort geändert" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "In Baugruppe installiert" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "Aus Baugruppe entfernt" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "Komponente installiert" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "Komponente entfernt" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "Vom übergeordneten Element geteilt" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "Unterobjekt geteilt" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "Zum Kunden geschickt" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "Rücksendung vom Kunden" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "Endprodukt erstellt" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "Endprodukt fertiggestellt" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "Gegen Bestellung empfangen" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "in Arbeit" @@ -270,8 +351,9 @@ msgstr "IPN muss zu Regex-Muster {pat} passen" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" -msgstr "Referenz muss zu Regex-Muster passen" +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "Referenz muss zu Regex-Muster {pattern} passen" #: InvenTree/validators.py:113 #, python-brace-format @@ -376,35 +458,35 @@ msgstr "Zieldatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "Anzahl" @@ -416,7 +498,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:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "Seriennummer" @@ -446,11 +528,11 @@ msgstr "Bauauftrag als vollständig markieren" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "Lagerort" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "Lagerort der Endprodukte" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "Status" @@ -517,9 +600,9 @@ msgstr "Bauaufträge" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "Teil" @@ -616,7 +699,7 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "Losnummer" @@ -629,7 +712,7 @@ msgstr "Losnummer für dieses Endprodukt" msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" @@ -667,28 +750,28 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "Externer Link" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "Link zu einer externen URL" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "Endprodukt bereits hergstellt" msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:838 -msgid "Completed build output" -msgstr "Endprodukt fertigstellen" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" + +#: build/models.py:1165 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden" -#: build/models.py:1165 +#: build/models.py:1169 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "Zu viele BestandsObjekt zugewiesen" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "Bauauftrag" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "BestandsObjekt" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "Quell-BestandsObjekt" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "Ziel-BestandsObjekt" @@ -812,29 +891,29 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "Teile bestellen" #: build/templates/build/allocate.html:36 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "" +msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag vollständig zugewiesen" #: build/templates/build/allocate.html:40 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "" +msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: build/templates/build/allocate.html:47 msgid "This Build Order does not have any associated untracked BOM items" -msgstr "" +msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "Seriennummer" @@ -897,7 +976,7 @@ msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "Admin" @@ -908,8 +987,8 @@ msgstr "Admin" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "Überfällig" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "Fortschritt" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "Auftrag" @@ -974,7 +1053,7 @@ msgstr "Aufgegeben von" #: build/templates/build/build_base.html:207 msgid "Incomplete Outputs" -msgstr "Unvollständige Endprodukte" +msgstr "Unfertige Endprodukte" #: build/templates/build/build_base.html:208 msgid "Build Order cannot be completed as incomplete build outputs remain" @@ -1112,11 +1191,11 @@ msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" -msgstr "Los" +msgstr "Losnummer" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 @@ -1168,6 +1247,7 @@ msgstr "Bauauftrag-details" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "Details" @@ -1202,7 +1282,8 @@ msgstr "Bermerkungen bearbeiten" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "Speichern" @@ -1229,9 +1310,9 @@ msgstr "Endprodukt anlegen" #: build/views.py:168 msgid "Maximum output quantity is " -msgstr "" +msgstr "Maximale Endproduktmenge ist " -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" @@ -1348,372 +1429,405 @@ msgstr "Bauobjekt aktualisiert" msgid "Add Build Order Attachment" msgstr "Bauauftrags-Anhang hinzufügen" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "Anhang hinzugefügt" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "Anhang bearbeiten" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "Anhang aktualisiert" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "Anhang löschen" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "Anhang gelöscht" -#: common/models.py:56 +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "Dateiformat nicht unterstützt: {ext.upper()}" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "Fehler beim Lesen der Datei (ungültiges Format)" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "Fehler beim Lesen der Datei (falsche Größe)" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "Datei" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "Datei zum Hochladen auswählen" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "{name.title()} Datei" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "{name} Datei zum Hochladen auswählen" + +#: common/models.py:58 msgid "InvenTree Instance Name" msgstr "InvenTree Instanzname" -#: common/models.py:58 +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "Firmenname" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "Standard-Währung" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "Standard-Währung" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "Barcode-Scanner Unterstützung" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "Vorlage" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "Komponente" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" -msgstr "nachverfolgbar" +msgstr "Nachverfolgbar" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:253 +#: common/models.py:255 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:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "Tage" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "Gruppieren nach Teil" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "Preis" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "Standard" @@ -1721,24 +1835,42 @@ msgstr "Standard" msgid "Current value" msgstr "Aktueller Wert" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "Einstellungen ändern" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "Angegebener Wert nicht erlaubt" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "Angegebener Wert muss ein Wahrheitswert sein" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "Übereinstimmende Felder" + +#: common/views.py:186 +msgid "Match Items" +msgstr "Positionen zuordnen" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "Felder zuteilen fehlgeschlagen" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "Währung" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" @@ -1758,216 +1890,216 @@ msgstr "Einzelpreis" msgid "Single quantity price" msgstr "Preis für eine Einheit" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "MPN" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "Firmenbeschreibung" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "Firmenbeschreibung" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "Website" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "Firmenwebsite Adresse/URL" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "Adresse" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "Firmenadresse" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "Kontakt-Tel." -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "Kontakt-Telefon" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "Email" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "Kontakt-Email" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "Kontakt" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "Anlaufstelle" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "Link" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "Bild" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "ist Kunde" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "Verkaufen Sie Teile an diese Firma?" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "ist Zulieferer" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "Kaufen Sie Teile von dieser Firma?" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "ist Hersteller" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" -msgstr "Hersteller-Teil" +msgstr "Herstellerteil" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Notiz" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "Vielfache" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "Mehrere bestellen" @@ -1993,7 +2125,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:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "Bestellung anlegen" @@ -2022,11 +2154,9 @@ msgstr "Sind Sie sicher, dass Sie die Firma '%(name)s' löschen wollen?" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." -msgstr "" -"Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n" +msgstr "Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n" "Wenn dieser Lieferant gelöscht wird, werden auch diese Zulieferer-Teile gelöscht." #: company/templates/company/detail.html:21 @@ -2041,10 +2171,11 @@ msgstr "Keine Website angegeben" msgid "Uses default currency" msgstr "verwendet Standard-Währung" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "Kunde" @@ -2090,7 +2221,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "Neues Teil" @@ -2126,30 +2257,30 @@ msgstr "Exportieren" #: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" -msgstr "Zulieferer-Teile" +msgstr "Zuliefererteile" #: company/templates/company/detail_supplier_part.html:21 #: order/templates/order/order_wizard/select_parts.html:42 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" -msgstr "Neues Zulieferer-Teil anlegen" +msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" -msgstr "Neues Zulieferer-Teil" +msgstr "Neues Zuliefererteil" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "Neuer Zulieferer" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "Neuen Zulieferer anlegen" @@ -2207,7 +2338,7 @@ msgstr "Herstellerteil-Bestand" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2251,7 +2382,7 @@ msgstr "Hergestellte Teile" #: company/templates/company/navbar.html:29 #: company/templates/company/navbar.html:32 msgid "Supplied Parts" -msgstr "Zulieferer-Teile" +msgstr "Zuliefererteile" #: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 #: stock/templates/stock/location.html:107 @@ -2260,9 +2391,9 @@ msgstr "Zulieferer-Teile" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" -msgstr "BestandsObjekte" +msgstr "Teilbestand" #: company/templates/company/navbar.html:47 #: company/templates/company/navbar.html:56 @@ -2315,27 +2446,27 @@ msgid "New Sales Order" msgstr "Neuer Auftrag" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" -msgstr "Zulieferer-Teil" +msgstr "Zuliefererteil" #: company/templates/company/supplier_part_base.html:40 msgid "Edit supplier part" -msgstr "Zulieferer-Teil bearbeiten" +msgstr "Zuliefererteil bearbeiten" #: company/templates/company/supplier_part_base.html:44 msgid "Delete supplier part" -msgstr "Zulieferer-Teil entfernen" +msgstr "Zuliefererteil entfernen" #: company/templates/company/supplier_part_base.html:56 #: company/templates/company/supplier_part_detail.html:10 msgid "Supplier Part Details" -msgstr "Zulieferer-Teildetails" +msgstr "Zuliefererteil Details" #: company/templates/company/supplier_part_delete.html:5 msgid "Are you sure you want to delete the following Supplier Parts?" -msgstr "Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" +msgstr "Sind Sie sicher, dass sie die folgenden Zuliefererteile löschen möchten?" #: company/templates/company/supplier_part_navbar.html:12 #: company/templates/company/supplier_part_stock.html:10 @@ -2349,7 +2480,7 @@ msgstr "Zulieferer-Bestellungen" #: company/templates/company/supplier_part_navbar.html:26 msgid "Supplier Part Pricing" -msgstr "Zulieferer-Teil Bepreisung" +msgstr "Zuliefererteil Bepreisung" #: company/templates/company/supplier_part_navbar.html:29 msgid "Pricing" @@ -2365,7 +2496,7 @@ msgid "Pricing Information" msgstr "Preisinformationen ansehen" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -2395,7 +2526,7 @@ msgstr "Hersteller" msgid "Customers" msgstr "Kunden" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "Neuer Kunde" @@ -2415,6 +2546,11 @@ msgstr "Bild herunterladen" 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:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "Ungültige Antwort {code}" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -2435,7 +2571,7 @@ msgstr "Firma bearbeiten" msgid "Edited company information" msgstr "Firmeninformation bearbeitet" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "Neuen Kunden anlegen" @@ -2453,7 +2589,7 @@ msgstr "Firma gelöscht" #: company/views.py:357 msgid "Edit Manufacturer Part" -msgstr "Hergestellte Teile ändern" +msgstr "Herstellerteil ändern" #: company/views.py:366 msgid "Create New Manufacturer Part" @@ -2465,25 +2601,25 @@ msgstr "Herstellerteil löschen" #: company/views.py:528 msgid "Edit Supplier Part" -msgstr "Zulieferer-Teil bearbeiten" +msgstr "Zuliefererteil bearbeiten" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" -msgstr "Neues Zulieferer-Teil anlegen" +msgstr "Neues Zuliefererteil anlegen" #: company/views.py:722 msgid "Delete Supplier Part" -msgstr "Zulieferer-Teil entfernen" +msgstr "Zuliefererteil entfernen" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "Preisstaffel löschen" @@ -2491,51 +2627,59 @@ msgstr "Preisstaffel löschen" msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "Label Name" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "Label Beschreibung" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "Label" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "Label-Vorlage-Datei" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "Aktiviert" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "Label-Vorlage ist aktiviert" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "Breite [mm]" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "Label-Breite in mm" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "Höhe [mm]" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "Label-Höhe in mm" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "Dateinamen-Muster" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "Muster für die Erstellung von Label-Dateinamen" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "Filter" @@ -2573,15 +2717,15 @@ msgstr "Zieldatum für Auftrags-Lieferung." msgid "Enter sales order number" msgstr "Auftrag-Nummer eingeben" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "Zieldatum für Auftrags-Fertigstellung." -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "Seriennummern für BestandsObjekt eingeben" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "Menge der BestandsObjekt eingeben" @@ -2609,7 +2753,7 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "Bestellungs-Status" @@ -2650,8 +2794,8 @@ msgstr "Geplantes Lieferdatum für Auftrag." msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -2659,132 +2803,134 @@ msgstr "Anzahl muss größer Null sein" msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:348 -#, fuzzy -#| msgid "Quantity must be integer" +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: order/models.py:350 -#, fuzzy -#| msgid "Quantity must be positive" +#: order/models.py:352 msgid "Quantity must be a positive number" -msgstr "Anzahl muss positiv sein" +msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:369 -msgid "Received items" -msgstr "Elemente empfangen" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "Versand von" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "Bestellung" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "Bestellung" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" -msgstr "Zulieferer-Teil" +msgstr "Zuliefererteil" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "Empfangen" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "Verkaufspreis" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "Stückverkaufspreis" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "BestandsObjekt wurde nicht zugewiesen" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "Position" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "Position" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "BestandsObjekt für Zuordnung auswählen" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" @@ -2836,7 +2982,7 @@ msgstr "Aufgegeben" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "Neuer Lagerort" @@ -2847,10 +2993,8 @@ msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" #: order/templates/order/order_cancel.html:8 -#, fuzzy -#| msgid "Cancelling this order means that the order will no longer be editable." msgid "Cancelling this order means that the order and line items will no longer be editable." -msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." +msgstr "Abbruch dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind." #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" @@ -2861,10 +3005,8 @@ msgid "This order has line items which have not been marked as received." msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden." #: order/templates/order/order_complete.html:11 -#, fuzzy -#| msgid "Cancelling this order means that the order will no longer be editable." msgid "Completing this order means that the order and line items will no longer be editable." -msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." +msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind." #: order/templates/order/order_issue.html:8 msgid "After placing this purchase order, line items will no longer be editable." @@ -2874,6 +3016,75 @@ msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht läng msgid "Order Notes" msgstr "Notizen zur Bestellung" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +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 +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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "Auswahl übertragen" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "Datei-Felder" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "Spalte entfernen" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "Zeile entfernen" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "Fehler in den übermittelten Daten" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "Zeile" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "Zulieferer-Teil auswählen" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "Datei zur Bestellung hochladen" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "Schritt %(step)s von %(count)s" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden." + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "Schritt 1 von 2 - Zulieferer auswählen" @@ -2918,16 +3129,14 @@ msgid "Select Purchase Order" msgstr "Bestellung auswählen" #: order/templates/order/order_wizard/select_pos.html:45 -#, fuzzy, python-format -#| msgid "Create new purchase order" +#, python-format msgid "Create new purchase order for %(name)s" -msgstr "Neue Bestellung anlegen" +msgstr "Neue Bestellung für %(name)s anlegen" #: order/templates/order/order_wizard/select_pos.html:68 -#, fuzzy, python-format -#| msgid "Select a purchase order for" +#, python-format msgid "Select a purchase order for %(name)s" -msgstr "Bestellung auswählen für" +msgstr "Bestellung für %(name)s auswählen" #: order/templates/order/po_attachments.html:12 #: order/templates/order/po_navbar.html:23 @@ -2948,8 +3157,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -2958,11 +3167,12 @@ msgid "No line items found" msgstr "Keine Positionen gefunden" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "Stück-Preis" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "Position bearbeiten" @@ -2992,7 +3202,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "Teile" @@ -3008,7 +3218,7 @@ msgstr "Bestellnummer" #: order/templates/order/receive_parts.html:21 #: part/templates/part/part_base.html:129 templates/js/part.js:414 msgid "On Order" -msgstr "bestellt" +msgstr "Bestellt" #: order/templates/order/receive_parts.html:23 msgid "Receive" @@ -3054,59 +3264,72 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i msgid "Sales Order Items" msgstr "Auftrags-Positionen" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "Aktionen" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "ID" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "Zugeordnet" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "Erledigt" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "PO" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "Seriennummern zuweisen" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "Lagerbestand zuweisen" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "Lagerbestand kaufen" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "Lagerbestand bauen" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "Preis berechnen" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "Position löschen " +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "Stückpreis aktualisieren" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "Auftrags-Positionen" @@ -3148,164 +3371,189 @@ msgstr "Auftrags-Anhänge" msgid "Are you sure you wish to delete this line item?" msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "Bestellungs-Anhang hinzufügen" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "Auftrags-Anhang hinzufügen" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "Auftrag anlegen" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "Bestellung bearbeiten" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "Auftrag bearbeiten" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "Bestellung stornieren" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "Bestellstornierung bestätigen" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "Auftrag stornieren" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "Bestellung aufgeben" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "Bestellungstätigung bestätigen" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" -msgstr "Bestellung erstellt" +msgstr "Bestellung plaziert" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "Auftrag fertigstellen" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "Fertigstellung bestätigen" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "Bestellung als vollständig markieren" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "Versenden" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "Versand bestätigen" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "Versand fehlgeschlagen" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "Zuliefererteile zuordnen" + +#: order/views.py:798 msgid "Receive Parts" msgstr "Teile empfangen" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "Anzahl empfangener Positionen" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "Kein Ziel gesetzt" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "Fehler beim Konvertieren zu Zahl" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "Anzahl kleiner null empfangen" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "Keine Zeilen angegeben" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "{n} Teile bestellt" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" -msgstr "Zulieferer-Teil muss ausgewählt werden" +msgstr "Zuliefererteil muss ausgewählt werden" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "Zulieferer muss zu Teil und Bestellung passen" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "Position löschen" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "Position gelöscht" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "Seriennummern zuweisen" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "{n} Positionen zugeordnet" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "Position auswählen" -#: order/views.py:1410 -msgid "No matching item for serial" -msgstr "Kein passends Teil für Seriennummer gefunden" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "Kein passends Teil für Seriennummer {serial} gefunden" -#: order/views.py:1420 -msgid "is not in stock" -msgstr "ist nicht auf Lager" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" +msgstr "{serial} ist nicht auf Lager" -#: order/views.py:1428 -msgid "already allocated to an order" -msgstr "bereits einem Auftrag zugeordnet" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" +msgstr "{serial} bereits einem Auftrag zugeordnet" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "Lagerbestand dem Auftrag zuweisen" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "Zuordnung bearbeiten" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "Zuordnung entfernen" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "Auftrag nicht gefunden" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "Preis nicht gefunden" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "Stückpreis für {part} auf {price} aktualisiert" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3384,7 +3632,7 @@ msgstr "Zulieferer einschließen" msgid "Include part supplier data in exported BOM" msgstr "Zulieferer-Daten in Stückliste-Export einschließen" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "Ausgangsteil" @@ -3460,7 +3708,7 @@ msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen" msgid "Add parameter template to all categories" msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "Untergeordnetes Teil" @@ -3480,14 +3728,14 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "Teil-Kategorien" @@ -3550,7 +3798,7 @@ msgstr "Schlüsselwörter" msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "Kategorie" @@ -3587,7 +3835,7 @@ msgstr "Standard Zulieferer" #: part/models.py:808 msgid "Default supplier part" -msgstr "Standard Zulieferer-Teil" +msgstr "Standard Zuliefererteil" #: part/models.py:815 msgid "Default Expiry" @@ -3605,7 +3853,7 @@ msgstr "Minimaler Lagerbestand" msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "Einheiten" @@ -3635,8 +3883,8 @@ msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "Aktiv" @@ -3672,167 +3920,171 @@ msgstr "BOM Kontrolldatum" msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1949 +#: part/models.py:1616 +msgid "Sell multiple" +msgstr "Mehrere verkaufen" + +#: part/models.py:1987 msgid "Test templates can only be created for trackable parts" msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" -#: part/models.py:1966 +#: part/models.py:2004 msgid "Test with this name already exists for this part" msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil" -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:1987 +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" -msgstr "benötigt" +msgstr "Benötigt" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" -msgstr "verpflichtender Wert" +msgstr "Erfordert Wert" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" -msgstr "Parameter Einheit" +msgstr "Einheit des Parameters" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "Wert" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "Optional" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" -msgstr "Zulieferer-Teil muss festgelegt sein" +msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "Stücklisten-Position" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?" @@ -3917,7 +4169,7 @@ 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:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "Neues Teil anlegen" @@ -3935,51 +4187,18 @@ msgstr "Stückliste hochladen" msgid "Step 2 - Select Fields" msgstr "Schritt 2 - Felder auswählen" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "Auswahl übertragen" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "Datei-Felder" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "Spalte entfernen" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "Übereinstimmende Felder" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "Spalte doppelt ausgewählt" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "Zeile entfernen" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "Schritt 3 - Teile auswählen" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "Fehler in den übermittelten Daten" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "Stückliste abschicken" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "Zeile" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -4010,10 +4229,6 @@ msgstr "Vorlage für Stückliste" msgid "Each part must already exist in the database" msgstr "Jedes Teil muss bereits in der Datenbank bestehen" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "Datei hochgeladen" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4025,7 +4240,7 @@ msgstr "Damit wird jede Zeile der Stückliste kontrolliert" #: part/templates/part/build.html:10 msgid "Part Builds" -msgstr "gefertigte Teile" +msgstr "Gefertigte Teile" #: part/templates/part/build.html:18 msgid "Start New Build" @@ -4035,7 +4250,7 @@ msgstr "Neuen Bauauftrag beginnen" msgid "All parts" msgstr "Alle Teile" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" @@ -4103,7 +4318,7 @@ msgstr "Teil-Kategorie anlegen" msgid "Create new Part Category" msgstr "Neue Teil-Kategorie anlegen" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "Neuen Lagerort erstellen" @@ -4136,7 +4351,7 @@ msgstr "Diese Kategorie enthält %(count)s Teile" #: part/templates/part/category_delete.html:27 #, python-format msgid "If this category is deleted, these parts will be moved to the parent category %(path)s" -msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kat. %(path)s verschoben" +msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kategorie %(path)s verschoben" #: part/templates/part/category_delete.html:29 msgid "If this category is deleted, these parts will be moved to the top-level category Teile" @@ -4179,7 +4394,7 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" #: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 msgid "Part Details" -msgstr "Teile-Details" +msgstr "Teil Details" #: part/templates/part/detail.html:42 msgid "Latest Serial Number" @@ -4294,22 +4509,18 @@ msgstr "Benutzt in" msgid "Sales Price Information" msgstr "Preisinformationen ansehen" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "VK-Preis" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "Tests" #: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116 #: part/templates/part/related.html:10 msgid "Related Parts" -msgstr "verknüpfte Teile" +msgstr "Verknüpfte Teile" #: part/templates/part/navbar.html:125 part/templates/part/notes.html:12 msgid "Part Notes" @@ -4327,7 +4538,7 @@ msgstr "Neuer Parameter" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "Wert" @@ -4363,19 +4574,19 @@ msgid "Star this part" msgstr "Teil favorisieren" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "Barcode Aktionen" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "Label drucken" @@ -4404,7 +4615,7 @@ msgstr "Teil bearbeiten" msgid "Delete part" msgstr "Teil löschen" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "Auf Lager" @@ -4418,7 +4629,7 @@ msgstr "Benötigt für Aufträge" #: part/templates/part/part_base.html:150 msgid "Allocated to Orders" -msgstr "zu Bauaufträgen zugeordnet" +msgstr "Zu Bauaufträgen zugeordnet" #: part/templates/part/part_base.html:165 templates/js/bom.js:300 msgid "Can Build" @@ -4432,42 +4643,39 @@ msgstr "Im Bau" msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "Preisinformationen für:
%(part)s." - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "Zulieferer-Preise" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "Stückpreis" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "Gesamtkosten" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "Stücklistenpreise" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "Keine Stücklisten-Preise verfügbar" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" @@ -4511,11 +4719,11 @@ msgstr "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt #: part/templates/part/related.html:18 msgid "Add Related" -msgstr "Zugehöriges Teil hinzufügen" +msgstr "Verknüpftes Teil hinzufügen" #: part/templates/part/sale_prices.html:10 msgid "Sell Price Information" -msgstr "VK-Preis Informationen" +msgstr "Verkaufspreis Informationen" #: part/templates/part/sales_orders.html:18 msgid "New sales order" @@ -4576,6 +4784,10 @@ msgstr "Neue Variante anlegen" msgid "New Variant" msgstr "neue Variante anlegen" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "Unbekannte Datenbank" + #: part/views.py:89 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" @@ -4725,63 +4937,63 @@ msgstr "Teil wurde gelöscht" msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "Teilparameter anlegen" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "Teilparameter bearbeiten" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "Teilparameter löschen" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "Stücklisten-Position bearbeiten" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "löschen von Stücklisten-Position bestätigen" @@ -4883,17 +5095,17 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "Datum" @@ -4905,22 +5117,22 @@ msgstr "bestanden" msgid "Fail" msgstr "fehlgeschlagen" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "Bestand für {n} Objekte geändert" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "{n} Teile nach {loc} bewegt" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "Ablaufdatum für dieses BestandsObjekt" @@ -4948,8 +5160,8 @@ msgstr " Transaktionsnotizen hinzufügen (optional)" msgid "Select test report template" msgstr "Test Bericht Vorlage auswählen" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "Unter-Lagerorte einschließen" @@ -5005,243 +5217,187 @@ msgstr "Standard-Lagerort ändern" msgid "Set the destination as the default location for selected parts" msgstr "Setze das Ziel als Standard-Lagerort für ausgewählte Teile" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "Neues BestandsObjekt erstellt" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "Eltern-BestandsObjekt" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" -msgstr "Passendes Zulieferer-Teil für dieses BestandsObjekt auswählen" +msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "Losnummer für dieses BestandsObjekt" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "Bauauftrag für dieses BestandsObjekt" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "Bestellung für dieses BestandsObjekt" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "BestandsObjekt-Notizen" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "zugewiesen zum Kunden" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "manuell zugewiesen zum Kunden" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "zurück vom Kunden" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "zurück ins Lager" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "In BestandsObjekt verbaut" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "verbautes BestandsObjekt" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "BestandsObjekt ausgebaut" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "ausgebaut nach Lagerort" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "Seriennummer hinzufügen" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" -msgstr "{n} Teile serialisiert" +msgid "Serial numbers already exist: {exists}" +msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "aufteilen vom vorhandenen Bestand" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:1556 -msgid "Title" -msgstr "Titel" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "Objektverfolgung - Name des Eintrags" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "Link auf externe Seite für weitere Informationen" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "Test Notizen" @@ -5296,134 +5452,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand aufgebraucht ist." #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "Barcode abhängen" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "Barcode anhängen" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "zu Lagerort einscannen" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "Druck Aktionen" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "Test-Bericht" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "Bestand zählen" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "Bestand hinzufügen" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "Bestand entfernen" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "Lagerbestand serialisieren" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "Bestand verschieben" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" -msgstr "zu Kunden zuordnen" +msgstr "Kunden zuweisen" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "zu Bestand zurückgeben" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "BestandsObjekt deinstallieren" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "Bestands-Aktionen" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "BestandsObjekt duplizieren" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "BestandsObjekt bearbeiten" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "BestandsObjekt löschen" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "BestandsObjekt-Details" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" @@ -5467,7 +5623,7 @@ msgstr "Installierte BestandsObjekte" #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." -msgstr "Teile mit Seriennummern von diesem BestandObjekt anlegen." +msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." @@ -5534,7 +5690,7 @@ msgid "Stock Details" msgstr "Objekt-Details" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -5574,7 +5730,7 @@ msgstr "Lade..." msgid "The following stock items will be uninstalled" msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "BestandsObjekt umwandeln" @@ -5607,8 +5763,8 @@ msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag lös msgid "Edit Stock Location" msgstr "BestandsObjekt-Lagerort bearbeiten" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)" @@ -5630,7 +5786,7 @@ msgstr "BestandsObjekt-Anhang löschen" #: stock/views.py:343 msgid "Assign to Customer" -msgstr "einem Kunden zuordnen" +msgstr "Kunden zuweisen" #: stock/views.py:352 msgid "Customer must be specified" @@ -5774,43 +5930,47 @@ msgstr "{n} Teile nach {dest} bewegt" msgid "Deleted {n} stock items" msgstr "{n} BestandsObjekte gelöscht" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "Lagerbestandsstatus bearbeiten" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "BestandsObjekt bearbeiten" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "Lagerbestand erfassen" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "Neues BestandsObjekt hinzufügen" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "Bestand duplizieren" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "Anzahl kann nicht negativ sein" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "Bestand-Lagerort löschen" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "BestandsObjekt löschen" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag löschen" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag bearbeiten" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag hinzufügen" @@ -5907,30 +6067,23 @@ msgid "Color Themes" msgstr "Farbschemata" #: templates/InvenTree/settings/appearance.html:29 -#, fuzzy, python-format -#| msgid "" -#| "\n" -#| "\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" -#| "\t\tPlease select another color theme :)\n" -#| "\t" -msgid "" -"\n" +#, python-format +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " -msgstr "" -"\n" +msgstr "\n" "\t\tDie CSS Datei \"%(invalid_color_theme)s.css\" für das aktuell ausgewählte Farbschema wurde nicht gefunden.
\n" "\t\tBitte ein anderes Farbschema auswählen:)\n" -"\t" +"\t " #: templates/InvenTree/settings/appearance.html:39 msgid "Language" -msgstr "" +msgstr "Sprache" #: templates/InvenTree/settings/appearance.html:61 msgid "Set Language" -msgstr "" +msgstr "Sprache festlegen" #: templates/InvenTree/settings/build.html:10 msgid "Build Order Settings" @@ -6017,7 +6170,7 @@ msgstr "Bestands-Einstellungen" #: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50 msgid "Stock Options" -msgstr "Stock-Optionen" +msgstr "Bestands-Einstellungen " #: templates/InvenTree/settings/tabs.html:3 #: templates/InvenTree/settings/user.html:10 @@ -6030,7 +6183,7 @@ msgstr "Konto" #: templates/InvenTree/settings/tabs.html:9 msgid "Appearance" -msgstr "" +msgstr "Anzeige" #: templates/InvenTree/settings/tabs.html:13 msgid "InvenTree Settings" @@ -6111,19 +6264,27 @@ msgstr "Code auf GitHub ansehen" #: templates/about.html:63 msgid "Credits" -msgstr "" +msgstr "Danksagung" #: templates/about.html:68 msgid "Mobile App" -msgstr "" +msgstr "Mobile App" #: templates/about.html:73 msgid "Submit Bug Report" msgstr "Fehlerbericht senden" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "In die Zwischenablage kopieren" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "Versionsinformationen kopieren" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "Schliessen" @@ -6131,10 +6292,6 @@ msgstr "Schliessen" msgid "Add Attachment" msgstr "Anhang hinzufügen" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "Datei" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "Hochgeladen" @@ -6187,7 +6344,7 @@ msgstr "Server-Fehler" msgid "Unknown response from server" msgstr "Unbekannte Antwort von Server erhalten" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "Ungültige Antwort von Server" @@ -6295,7 +6452,7 @@ msgstr "Keine Stücklisten-Position(en) gefunden" #: templates/js/build.js:62 msgid "Auto-allocate stock items to this output" -msgstr "BestandsObjekte automatisch Endprodukt zuordnen" +msgstr "Teilbestand automatisch Endprodukt zuweisen" #: templates/js/build.js:70 msgid "Unallocate stock from build output" @@ -6332,7 +6489,7 @@ msgstr "Keine Bauaufträge passen zur Anfrage" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "Auswählen" @@ -6350,7 +6507,7 @@ msgstr "Teile geliefert" #: templates/js/company.js:83 msgid "Parts Manufactured" -msgstr "Teile gefertigt" +msgstr "Hersteller-Teile" #: templates/js/company.js:96 msgid "No company information found" @@ -6372,7 +6529,7 @@ msgstr "Baugruppe" #: templates/js/company.js:227 msgid "No supplier parts found" -msgstr "Keine Zulieferer-Teile gefunden" +msgstr "Keine Zuliefererteile gefunden" #: templates/js/filters.js:193 msgid "Select filter" @@ -6430,96 +6587,96 @@ msgstr "Label auswählen" msgid "Select Label Template" msgstr "Label-Vorlage auswählen" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "Warte auf Server..." -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "Fehler-Informationen anzeigen" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "Akzeptieren" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "abbrechen" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "Lade Daten" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "Abschicken" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "ungültige Antwort vom Server" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "Formulardaten fehlen bei Serverantwort" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "Formulardaten fehlerhaft" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "JSON Antwort enthält keine Formulardaten" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "Fehler 400: Ungültige Anfrage" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "Fehler 400 von Server erhalten" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" @@ -6537,7 +6694,7 @@ msgstr "Keine Aufträge gefunden" #: templates/js/part.js:52 templates/js/part.js:137 msgid "Trackable part" -msgstr "nachverfolgbares Teil" +msgstr "Nachverfolgbares Teil" #: templates/js/part.js:56 templates/js/part.js:141 msgid "Virtual part" @@ -6563,7 +6720,7 @@ msgstr "Keine Teile gefunden" msgid "No category" msgstr "Keine Kategorie" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "Bestand niedrig" @@ -6715,7 +6872,7 @@ msgstr "lose" #: templates/js/stock.js:476 msgid "locations" -msgstr "lagerorte" +msgstr "Lagerorte" #: templates/js/stock.js:478 msgid "Undefined location" @@ -6761,7 +6918,7 @@ msgstr "BestandsObjekt verloren" msgid "Stock item is destroyed" msgstr "BestandsObjekt zerstört" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "gelöscht" @@ -6785,189 +6942,213 @@ msgstr "Status Code setzen" msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "Ungültiges Datum" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "Standort nicht mehr vorhanden" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "Bestellung existiert nicht mehr" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "Kunde existiert nicht mehr" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "Lagerbestand existiert nicht mehr" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "Hinzugefügt" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "Entfernt" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "Neuen Lagerort anlegen" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "Seriennummer" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "Installiert" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "Installiere Objekt" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" -msgstr "nachverfolgbares Teil" +msgstr "Nachverfolgbares Teil" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "überprüft" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "Lagerorte einschließen" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "Unterkategorien einschließen" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" -msgstr "ist mit Seriennummer" +msgstr "Hat Seriennummer" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "Seriennummer >=" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "Seriennummer größer oder gleich" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "Seriennummer <=" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "Seriennummern kleiner oder gleich" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "Seriennummer" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "Losnummer" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "Aktive Teile" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "Bestand aktiver Teile anzeigen" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "Teil ist eine Baugruppe" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "Ist zugeordnet" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "Teil wurde zugeordnet" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "Bestand in Unter-Lagerorten einschließen" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "Zeige aufgebrauchte BestandsObjekte" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "Zeige abgelaufene BestandsObjekte" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "Bestand, der bald ablaufen, anzeigen" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "Zeige Objekte welche im Lager sind" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "In Arbeit" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "Elemente, die in Produktion sind, anzeigen" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "Varianten einschließen" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "BestandsObjekte für Teil-Varianten einschließen" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "Zum Kunden geschickt" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "zeige zu Kunden zugeordnete Einträge" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "Bestandsstatus" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "Bauauftrags-Status" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "ausstehend" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "verfügbarer Lagerbestand" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "Favorit" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "Käuflich" @@ -7024,13 +7205,13 @@ msgstr "Spalten" msgid "All" msgstr "Alle" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "Fehler in Formular" #: templates/navbar.html:13 msgid "Toggle navigation" -msgstr "" +msgstr "Navigation ein-/ausklappen" #: templates/navbar.html:33 msgid "Buy" @@ -7058,7 +7239,7 @@ msgstr "Einloggen" #: templates/navbar.html:104 msgid "About InvenTree" -msgstr "Über InvenBaum" +msgstr "Über InvenTree" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -7136,31 +7317,47 @@ msgstr "Server" msgid "Instance Name" msgstr "Instanzname" -#: templates/stats.html:19 +#: templates/stats.html:18 +msgid "Database" +msgstr "Datenbank" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "Server läuft im Debug-Modus" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:40 msgid "Server status" msgstr "Serverstatus" -#: templates/stats.html:22 +#: templates/stats.html:43 msgid "Healthy" msgstr "Gesund" -#: templates/stats.html:24 +#: templates/stats.html:45 msgid "Issues detected" msgstr "Probleme erkannt" -#: templates/stats.html:31 +#: templates/stats.html:52 msgid "Background Worker" msgstr "Hintergrund-Prozess" -#: templates/stats.html:34 +#: templates/stats.html:55 msgid "Background worker not running" msgstr "Hintergrund-Prozess läuft nicht" -#: templates/stats.html:42 +#: templates/stats.html:63 msgid "Email Settings" msgstr "E-Mail-Einstellungen" -#: templates/stats.html:45 +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "E-Mail-Einstellungen nicht konfiguriert" @@ -7280,14 +7477,3 @@ msgstr "Berechtigungen Einträge zu ändern" msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" -#~ msgid "Marking this order as complete will remove these line items." -#~ msgstr "Wenn Sie diese Bestellung als abgeschlossen markieren, werden diese Positionen entfernt." - -#~ msgid "Create new purchase order for {{ supplier.name }}" -#~ msgstr "Neue Bestellung für {{ supplier.name }} anlegen" - -#~ msgid "Theme" -#~ msgstr "Thema" - -#~ msgid "Get the App" -#~ msgstr "App herunterladen" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 097f4c0f8c..7e057e4153 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-05-05 17:33+1000\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -78,8 +78,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -107,7 +107,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -123,9 +123,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -133,8 +133,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -142,11 +142,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -160,7 +160,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -172,23 +172,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -204,60 +204,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -276,7 +352,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -382,35 +459,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -422,7 +499,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -452,11 +529,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -465,12 +542,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -523,9 +601,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -547,16 +625,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -566,7 +644,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -622,7 +700,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -635,7 +713,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -673,28 +751,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -716,75 +794,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -818,7 +892,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -838,9 +912,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -903,7 +977,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -914,8 +988,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -961,14 +1035,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1118,9 +1192,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1174,6 +1248,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1208,7 +1283,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1237,7 +1313,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1354,372 +1430,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1727,24 +1836,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1764,216 +1891,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1999,7 +2126,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2045,10 +2172,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2094,7 +2222,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2141,19 +2269,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2211,7 +2339,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2264,7 +2392,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2319,8 +2447,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2369,7 +2497,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2399,7 +2527,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2419,6 +2547,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2439,7 +2572,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2471,7 +2604,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2479,15 +2612,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2495,51 +2628,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2577,15 +2718,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2613,7 +2754,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2654,8 +2795,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2663,128 +2804,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2836,7 +2983,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2870,6 +3017,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2942,8 +3158,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2952,11 +3168,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2986,7 +3203,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3048,59 +3265,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3142,164 +3372,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3378,7 +3633,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3454,7 +3709,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3474,14 +3729,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3544,7 +3799,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3599,7 +3854,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3629,8 +3884,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3666,167 +3921,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3911,7 +4170,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3929,51 +4188,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -4004,10 +4230,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4029,7 +4251,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4097,7 +4319,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4288,15 +4510,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4321,7 +4539,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4357,19 +4575,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4398,7 +4616,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4426,42 +4644,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4570,6 +4785,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4719,63 +4938,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4877,17 +5096,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4899,22 +5118,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4942,8 +5161,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4999,243 +5218,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5290,134 +5453,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5528,7 +5691,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5568,7 +5731,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5601,8 +5764,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5768,43 +5931,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -6106,9 +6273,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6116,10 +6291,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6172,7 +6343,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6317,7 +6488,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6415,96 +6586,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6548,7 +6719,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6746,7 +6917,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6770,189 +6941,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7009,7 +7204,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7121,31 +7316,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 459ce5092a..f56eb19904 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -33,7 +38,7 @@ msgstr "" #: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60 #: order/forms.py:71 part/forms.py:134 msgid "Confirm" -msgstr "" +msgstr "Confirmar" #: InvenTree/forms.py:126 msgid "Confirm delete" @@ -53,11 +58,11 @@ msgstr "" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Confirmar la contraseña" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Confirmar contraseña nueva" #: InvenTree/forms.py:203 msgid "Apply Theme" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -111,36 +116,36 @@ msgstr "" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Comentario" #: InvenTree/models.py:62 msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "Usuario" #: InvenTree/models.py:72 msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "Nombre" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,9 +159,9 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Descripción" #: InvenTree/models.py:115 msgid "Description (optional)" @@ -166,25 +171,25 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" -msgstr "" +msgstr "Inglés" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" -msgstr "" +msgstr "Francés" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" -msgstr "" +msgstr "Alemán" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" -msgstr "" +msgstr "Polaco" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" -msgstr "" +msgstr "Turco" #: InvenTree/status.py:93 msgid "Background worker check failed" @@ -198,63 +203,139 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 -msgid "Lost" -msgstr "" +msgstr "Terminado" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 +msgid "Cancelled" +msgstr "Cancelado" + +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 #: InvenTree/status_codes.py:190 +msgid "Lost" +msgstr "Perdida" + +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Attention needed" -msgstr "" - #: InvenTree/status_codes.py:186 -msgid "Damaged" -msgstr "" +msgid "OK" +msgstr "OK" #: InvenTree/status_codes.py:187 -msgid "Destroyed" -msgstr "" +msgid "Attention needed" +msgstr "Atención necesaria" + +#: InvenTree/status_codes.py:188 +msgid "Damaged" +msgstr "Dañado" #: InvenTree/status_codes.py:189 +msgid "Destroyed" +msgstr "Destruido" + +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 -msgid "Production" +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" msgstr "" +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Production" +msgstr "Producción" + #: InvenTree/validators.py:22 msgid "Not a valid currency code" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -292,7 +374,7 @@ msgstr "" #: InvenTree/views.py:587 msgid "Delete Item" -msgstr "" +msgstr "Eliminar elemento" #: InvenTree/views.py:636 msgid "Check box to confirm item deletion" @@ -304,7 +386,7 @@ msgstr "" #: InvenTree/views.py:662 templates/InvenTree/settings/user.html:22 msgid "Set Password" -msgstr "" +msgstr "Configurar Contraseña" #: InvenTree/views.py:681 msgid "Password fields must match" @@ -312,7 +394,7 @@ msgstr "" #: InvenTree/views.py:887 templates/navbar.html:95 msgid "System Information" -msgstr "" +msgstr "Información del sistema" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" @@ -376,37 +458,37 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" -msgstr "" +msgstr "Cantidad" #: build/forms.py:49 msgid "Number of items to build" @@ -416,9 +498,9 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" -msgstr "" +msgstr "Números de serie" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" @@ -446,27 +528,28 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" -msgstr "" +msgstr "Unicación" #: build/forms.py:211 msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" -msgstr "" +msgstr "Estado" #: build/forms.py:216 msgid "Build output stock status" @@ -486,7 +569,7 @@ msgstr "" #: build/forms.py:252 msgid "Confirm cancel" -msgstr "" +msgstr "Confirmar cancelación" #: build/forms.py:252 build/views.py:66 msgid "Confirm build cancellation" @@ -517,14 +600,14 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 msgid "Reference" -msgstr "" +msgstr "Referencia" #: build/models.py:137 msgid "Brief description of the build" @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,9 +643,9 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" -msgstr "" +msgstr "Parte" #: build/models.py:160 msgid "Select part to build" @@ -602,7 +685,7 @@ msgstr "" #: build/models.py:198 msgid "Completed items" -msgstr "" +msgstr "Elementos completados" #: build/models.py:200 msgid "Number of stock items which have been completed" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -655,7 +738,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:138 part/models.py:886 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" -msgstr "" +msgstr "Responsable" #: build/models.py:251 msgid "User responsible for this build order" @@ -667,32 +750,32 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" -msgstr "" +msgstr "Notas" #: build/models.py:262 msgid "Extra build notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,12 +911,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" -msgstr "" +msgstr "Número de serie" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -952,17 +1031,17 @@ msgstr "" #: build/templates/build/build_base.html:147 #: build/templates/build/detail.html:64 msgid "Progress" -msgstr "" +msgstr "Progreso" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1105,18 +1184,18 @@ msgstr "" #: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 msgid "Destination" -msgstr "" +msgstr "Destinación" #: build/templates/build/detail.html:53 msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" -msgstr "" +msgstr "Lote" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 @@ -1130,7 +1209,7 @@ msgstr "" #: build/templates/build/detail.html:132 templates/js/build.js:756 msgid "Completed" -msgstr "" +msgstr "Completados" #: build/templates/build/detail.html:136 msgid "Build not complete" @@ -1168,8 +1247,9 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" -msgstr "" +msgstr "Detalles" #: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24 #: build/views.py:91 @@ -1202,10 +1282,11 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" -msgstr "" +msgstr "Guardar" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" -msgstr "" +msgstr "días" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" -msgstr "" +msgstr "Página web" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" -msgstr "" +msgstr "Teléfono" + +#: company/models.py:112 +msgid "Contact phone number" +msgstr "Teléfono de contacto" + +#: company/models.py:115 company/templates/company/company_base.html:91 +msgid "Email" +msgstr "Email" #: company/models.py:115 -msgid "Contact phone number" -msgstr "" - -#: company/models.py:118 company/templates/company/company_base.html:91 -msgid "Email" -msgstr "" - -#: company/models.py:118 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" -msgstr "" +msgstr "Contacto" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" -msgstr "" +msgstr "Fabricante" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" -msgstr "" +msgstr "Proveedor" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" -msgstr "" +msgstr "Nota" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2013,7 +2145,7 @@ msgstr "" #: company/templates/company/company_base.html:84 msgid "Phone" -msgstr "" +msgstr "Teléfono" #: company/templates/company/delete.html:7 #, python-format @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,12 +2170,13 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" -msgstr "" +msgstr "Cliente" #: company/templates/company/detail_manufacturer_part.html:11 #: templates/InvenTree/search.html:149 @@ -2067,7 +2199,7 @@ msgstr "" #: part/templates/part/manufacturer.html:22 #: part/templates/part/supplier.html:20 msgid "Options" -msgstr "" +msgstr "Opciones" #: company/templates/company/detail_manufacturer_part.html:33 #: company/templates/company/detail_supplier_part.html:32 @@ -2088,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2117,7 +2249,7 @@ msgstr "" #: part/templates/part/category.html:114 part/templates/part/category.html:128 #: part/templates/part/stock.html:54 stock/templates/stock/location.html:163 msgid "Export" -msgstr "" +msgstr "Exportar" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2234,7 +2366,7 @@ msgstr "" #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 #: stock/views.py:1002 users/models.py:187 msgid "Delete" -msgstr "" +msgstr "Eliminar" #: company/templates/company/manufacturer_part_suppliers.html:48 #: part/templates/part/supplier.html:51 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2386,14 +2518,14 @@ msgstr "" #: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" -msgstr "" +msgstr "Fabricantes" #: company/views.py:77 templates/InvenTree/search.html:336 #: templates/navbar.html:45 msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index ae5d861fa2..9f32eeb22f 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -26,38 +31,38 @@ msgstr "" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Entrer la date" #: InvenTree/forms.py:110 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 msgid "Confirm" -msgstr "" +msgstr "Confirmer" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "Confirmer la suppression" #: InvenTree/forms.py:127 msgid "Confirm item deletion" -msgstr "" +msgstr "Confirmer la suppression de cet élément" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "Entrer le mot de passe" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "Entrer le nouveau mot de passe" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Confirmez le mot de passe" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Confirmer le nouveau mot de passe" #: InvenTree/forms.py:203 msgid "Apply Theme" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -111,15 +116,15 @@ msgstr "" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Commentaire" #: InvenTree/models.py:62 msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,35 +159,35 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Description" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "" +msgstr "Description (facultative)" #: InvenTree/models.py:123 msgid "parent" -msgstr "" +msgstr "parent" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -292,7 +374,7 @@ msgstr "" #: InvenTree/views.py:587 msgid "Delete Item" -msgstr "" +msgstr "Supprimer cet élément" #: InvenTree/views.py:636 msgid "Check box to confirm item deletion" @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 69191acc73..20cbccebaa 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: it\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -117,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 23cec9e6fb..fe9b71062e 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: ja\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -117,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index edc3b32d2b..c9c9975b16 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -11,136 +11,141 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: pl\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "Nie znaleziono punktu końcowego API" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "Nie określono działania" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "Nie znaleziono pasującej akcji" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Wprowadź dane" #: InvenTree/forms.py:110 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 msgid "Confirm" -msgstr "" +msgstr "Potwierdź" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "Potwierdź usunięcie" #: InvenTree/forms.py:127 msgid "Confirm item deletion" -msgstr "" +msgstr "Potwierdź usuwanie elementu" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "Wprowadź hasło" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "Wprowadź nowe hasło" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Potwierdź hasło" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Potwierdź nowe hasło" #: InvenTree/forms.py:203 msgid "Apply Theme" -msgstr "" +msgstr "Zastosuj motyw" #: InvenTree/forms.py:233 msgid "Select Category" -msgstr "" +msgstr "Wybierz kategorię" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Powtórzony numer seryjny: {n}" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" -msgstr "" +msgstr "Podano nieprawidłową ilość" #: InvenTree/helpers.py:387 msgid "Empty serial number string" -msgstr "" +msgstr "Pusty ciąg numeru seryjnego" #: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415 #: InvenTree/helpers.py:440 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Nieprawidłowa grupa: {g}" #: InvenTree/helpers.py:445 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Powtórzony numer seryjny: {g}" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "Nie znaleziono numerów seryjnych" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" -msgstr "" +msgstr "Załącznik" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "" +msgstr "Wybierz plik do załączenia" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Komentarz" #: InvenTree/models.py:62 msgid "File comment" -msgstr "" +msgstr "Komentarz pliku" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "Użytkownik" #: InvenTree/models.py:72 msgid "upload date" -msgstr "" +msgstr "data przesłania" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "Nazwa" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,37 +159,37 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Opis" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "" +msgstr "Opis (opcjonalny)" #: InvenTree/models.py:123 msgid "parent" -msgstr "" +msgstr "nadrzędny" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" -msgstr "" +msgstr "Angielski" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" -msgstr "" +msgstr "Francuski" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" -msgstr "" +msgstr "Niemiecki" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" -msgstr "" +msgstr "Polski" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" -msgstr "" +msgstr "Turecki" #: InvenTree/status.py:93 msgid "Background worker check failed" @@ -192,91 +197,168 @@ msgstr "" #: InvenTree/status.py:97 msgid "Email backend not configured" -msgstr "" +msgstr "Nie skonfigurowano backendu e-mail" #: InvenTree/status.py:100 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "W toku" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Umieszczony" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 -msgid "Lost" -msgstr "" +msgstr "Zakończono" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 -msgid "Returned" -msgstr "" +#: InvenTree/status_codes.py:316 +msgid "Cancelled" +msgstr "Anulowano" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 +msgid "Lost" +msgstr "Zagubiono" + +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 +msgid "Returned" +msgstr "Zwrócone" + +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Attention needed" -msgstr "" +msgstr "Wysłane" #: InvenTree/status_codes.py:186 -msgid "Damaged" -msgstr "" +msgid "OK" +msgstr "OK" #: InvenTree/status_codes.py:187 -msgid "Destroyed" -msgstr "" +msgid "Attention needed" +msgstr "Wymaga uwagi" + +#: InvenTree/status_codes.py:188 +msgid "Damaged" +msgstr "Uszkodzone" #: InvenTree/status_codes.py:189 +msgid "Destroyed" +msgstr "Zniszczone" + +#: InvenTree/status_codes.py:191 msgid "Rejected" +msgstr "Odrzucone" + +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:237 -msgid "Production" +#: InvenTree/status_codes.py:274 +msgid "Stock item created" msgstr "" +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "Lokalizacja zmieniona" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "Podziel element podrzędny" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "Wyślij do klienta" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "Zwrócony od klienta" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Production" +msgstr "Produkcja" + #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "Nieprawidłowy kod waluty" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Błędny znak w nazwie elementu" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "Niedozwolony znak w nazwie ({x})" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" @@ -292,27 +374,27 @@ msgstr "" #: InvenTree/views.py:587 msgid "Delete Item" -msgstr "" +msgstr "Usuń element" #: InvenTree/views.py:636 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "Zaznacz pole aby potwierdzić usunięcie elementu" #: InvenTree/views.py:651 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" -msgstr "" +msgstr "Edytuj informacje użytkownika" #: InvenTree/views.py:662 templates/InvenTree/settings/user.html:22 msgid "Set Password" -msgstr "" +msgstr "Ustaw hasło" #: InvenTree/views.py:681 msgid "Password fields must match" -msgstr "" +msgstr "Hasła muszą być zgodne" #: InvenTree/views.py:887 templates/navbar.html:95 msgid "System Information" -msgstr "" +msgstr "Informacja systemowa" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" @@ -356,7 +438,7 @@ msgstr "" #: build/forms.py:37 msgid "Build Order reference" -msgstr "" +msgstr "Numer Zlecenia Budowy" #: build/forms.py:38 msgid "Order target date" @@ -370,43 +452,43 @@ msgstr "" #: templates/js/build.js:783 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" -msgstr "" +msgstr "Data docelowa" #: build/forms.py:43 build/models.py:224 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" -msgstr "" +msgstr "Ilość" #: build/forms.py:49 msgid "Number of items to build" @@ -416,9 +498,9 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" -msgstr "" +msgstr "Numer seryjny" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" @@ -438,35 +520,36 @@ msgstr "" #: build/forms.py:169 msgid "Confirm stock allocation" -msgstr "" +msgstr "Potwierdź przydział zapasów" #: build/forms.py:186 msgid "Mark build as complete" -msgstr "" +msgstr "Oznacz budowę jako ukończoną" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" -msgstr "" +msgstr "Lokalizacja" #: build/forms.py:211 msgid "Location of completed parts" -msgstr "" +msgstr "Lokalizacja ukończonych części" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" -msgstr "" +msgstr "Status" #: build/forms.py:216 msgid "Build output stock status" @@ -474,7 +557,7 @@ msgstr "" #: build/forms.py:223 msgid "Confirm incomplete" -msgstr "" +msgstr "Potwierdź nieukończone" #: build/forms.py:224 msgid "Confirm completion with incomplete stock allocation" @@ -486,7 +569,7 @@ msgstr "" #: build/forms.py:252 msgid "Confirm cancel" -msgstr "" +msgstr "Na pewno anulować?" #: build/forms.py:252 build/views.py:66 msgid "Confirm build cancellation" @@ -501,7 +584,7 @@ msgstr "" #: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 msgid "Build Order" -msgstr "" +msgstr "Zlecenie Budowy" #: build/models.py:66 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 @@ -511,46 +594,46 @@ msgstr "" #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:31 users/models.py:43 msgid "Build Orders" -msgstr "" +msgstr "Zlecenia budowy" #: build/models.py:126 msgid "Build Order Reference" -msgstr "" +msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 msgid "Reference" -msgstr "" +msgstr "Referencja" #: build/models.py:137 msgid "Brief description of the build" -msgstr "" +msgstr "Krótki opis budowy" #: build/models.py:146 build/templates/build/build_base.html:153 #: build/templates/build/detail.html:77 msgid "Parent Build" -msgstr "" +msgstr "Budowa nadrzędna" #: build/models.py:147 msgid "BuildOrder to which this build is allocated" -msgstr "" +msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,94 +643,94 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" -msgstr "" +msgstr "Część" #: build/models.py:160 msgid "Select part to build" -msgstr "" +msgstr "Wybierz część do budowy" #: build/models.py:165 msgid "Sales Order Reference" -msgstr "" +msgstr "Odwołanie do zamówienia sprzedaży" #: build/models.py:169 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" #: build/models.py:174 msgid "Source Location" -msgstr "" +msgstr "Lokalizacja źródła" #: build/models.py:178 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)" #: build/models.py:183 msgid "Destination Location" -msgstr "" +msgstr "Lokalizacja docelowa" #: build/models.py:187 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy" #: build/models.py:191 msgid "Build Quantity" -msgstr "" +msgstr "Ilość do stworzenia" #: build/models.py:194 msgid "Number of stock items to build" -msgstr "" +msgstr "Ilość przedmiotów do zbudowania" #: build/models.py:198 msgid "Completed items" -msgstr "" +msgstr "Ukończone elementy" #: build/models.py:200 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Ilość produktów magazynowych które zostały ukończone" #: build/models.py:204 part/templates/part/part_base.html:160 msgid "Build Status" -msgstr "" +msgstr "Status budowania" #: build/models.py:208 msgid "Build status code" -msgstr "" +msgstr "Kod statusu budowania" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" -msgstr "" +msgstr "Kod partii" #: build/models.py:216 msgid "Batch code for this build output" -msgstr "" +msgstr "Kod partii dla wyjścia budowy" #: build/models.py:219 order/models.py:105 part/models.py:882 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" -msgstr "" +msgstr "Data utworzenia" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" -msgstr "" +msgstr "Docelowy termin zakończenia" #: build/models.py:227 order/models.py:218 templates/js/build.js:788 msgid "Completion Date" -msgstr "" +msgstr "Data zakończenia" #: build/models.py:233 msgid "completed by" -msgstr "" +msgstr "zrealizowane przez" #: build/models.py:241 msgid "Issued by" -msgstr "" +msgstr "Wydany przez" #: build/models.py:242 msgid "User who issued this build order" -msgstr "" +msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:250 build/templates/build/build_base.html:174 #: build/templates/build/detail.html:105 order/models.py:119 @@ -655,11 +738,11 @@ msgstr "" #: order/templates/order/sales_order_base.html:138 part/models.py:886 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" -msgstr "" +msgstr "Odpowiedzialny" #: build/models.py:251 msgid "User responsible for this build order" -msgstr "" +msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: build/models.py:256 build/templates/build/detail.html:91 #: company/templates/company/manufacturer_part_base.html:79 @@ -667,155 +750,151 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" -msgstr "" +msgstr "Link Zewnętrzny" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" -msgstr "" +msgstr "Link do zewnętrznego adresu URL" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" -msgstr "" +msgstr "Uwagi" #: build/models.py:262 msgid "Extra build notes" -msgstr "" +msgstr "Dodatkowe notatki do budowy" #: build/models.py:739 msgid "No build output specified" -msgstr "" +msgstr "Nie określono danych wyjściowych budowy" #: build/models.py:742 msgid "Build output is already completed" -msgstr "" +msgstr "Budowanie wyjścia jest już ukończone" #: build/models.py:745 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" -msgstr "" +msgstr "Budowa" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" -msgstr "" +msgstr "Element magazynowy" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" -msgstr "" +msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" -msgstr "" +msgstr "Zainstaluj do" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" -msgstr "" +msgstr "Docelowa lokalizacja magazynowa przedmiotu" #: build/templates/build/allocate.html:7 msgid "Allocate Parts" -msgstr "" +msgstr "Przydziel części" #: build/templates/build/allocate.html:15 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Przydziel zapasy do budowy" #: build/templates/build/allocate.html:22 msgid "Allocate stock to build" -msgstr "" +msgstr "Przydziel zapasy do budowy" #: build/templates/build/allocate.html:23 msgid "Auto Allocate" -msgstr "" +msgstr "Automatyczne przypisywanie" #: build/templates/build/allocate.html:25 templates/js/build.js:646 msgid "Unallocate stock" -msgstr "" +msgstr "Cofnij przydział zapasów" #: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805 msgid "Unallocate Stock" -msgstr "" +msgstr "Cofnij przydział zapasów" #: build/templates/build/allocate.html:29 msgid "Order required parts" -msgstr "" +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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" -msgstr "" +msgstr "Zamów części" #: build/templates/build/allocate.html:36 msgid "Untracked stock has been fully allocated for this Build Order" @@ -832,12 +911,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" -msgstr "" +msgstr "Numer Seryjny" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 @@ -846,11 +925,11 @@ msgstr "" #: part/templates/part/navbar.html:122 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" -msgstr "" +msgstr "Załączniki" #: build/templates/build/auto_allocate.html:9 msgid "Automatically Allocate Stock" -msgstr "" +msgstr "Przydziel automatycznie zapasy" #: build/templates/build/auto_allocate.html:10 msgid "The following stock items will be allocated to the specified build output" @@ -897,10 +976,10 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" -msgstr "" +msgstr "Widok administratora" #: build/templates/build/build_base.html:71 #: build/templates/build/build_base.html:140 @@ -908,18 +987,18 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" -msgstr "" +msgstr "Zaległe" #: build/templates/build/build_base.html:80 msgid "Print actions" -msgstr "" +msgstr "Akcje druku" #: build/templates/build/build_base.html:84 msgid "Print Build Order" -msgstr "" +msgstr "Wydrukuj Numer Zlecenia Budowy" #: build/templates/build/build_base.html:90 #: build/templates/build/build_base.html:215 @@ -932,17 +1011,17 @@ msgstr "" #: build/templates/build/build_base.html:99 msgid "Edit Build" -msgstr "" +msgstr "Edytuj Budowę" #: build/templates/build/build_base.html:101 #: build/templates/build/build_base.html:199 build/views.py:57 msgid "Cancel Build" -msgstr "" +msgstr "Anuluj Budowę" #: build/templates/build/build_base.html:114 #: build/templates/build/detail.html:11 msgid "Build Details" -msgstr "" +msgstr "Szczegóły budowy" #: build/templates/build/build_base.html:140 #, python-format @@ -952,25 +1031,25 @@ msgstr "" #: build/templates/build/build_base.html:147 #: build/templates/build/detail.html:64 msgid "Progress" -msgstr "" +msgstr "Postęp" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" -msgstr "" +msgstr "Zamówienie zakupu" #: build/templates/build/build_base.html:167 #: build/templates/build/detail.html:98 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "Dodane przez" #: build/templates/build/build_base.html:207 msgid "Incomplete Outputs" @@ -995,7 +1074,7 @@ msgstr "" #: build/templates/build/build_output.html:23 msgid "Create New Output" -msgstr "" +msgstr "Utwórz nowe wyjście" #: build/templates/build/build_output.html:36 msgid "Create a new build output" @@ -1035,7 +1114,7 @@ msgstr "" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Czy na pewno przerwać tę budowę?" #: build/templates/build/complete.html:8 msgid "Build Order is complete" @@ -1085,11 +1164,11 @@ msgstr "" #: build/templates/build/create_build_item.html:17 #, python-format msgid "No stock available for %(part)s" -msgstr "" +msgstr "Brak zapasów dla %(part)s" #: build/templates/build/delete_build_item.html:8 msgid "Are you sure you want to unallocate this stock?" -msgstr "" +msgstr "Czy na pewno chcesz anulować przydział tego zapasu?" #: build/templates/build/delete_build_item.html:11 msgid "The selected stock will be unallocated from the build output" @@ -1097,7 +1176,7 @@ msgstr "" #: build/templates/build/detail.html:35 msgid "Stock Source" -msgstr "" +msgstr "Źródło magazynu" #: build/templates/build/detail.html:40 msgid "Stock can be taken from any available location." @@ -1105,24 +1184,24 @@ msgstr "" #: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 msgid "Destination" -msgstr "" +msgstr "Przeznaczenie" #: build/templates/build/detail.html:53 msgid "Destination location not specified" -msgstr "" +msgstr "Nie określono lokalizacji docelowej" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" -msgstr "" +msgstr "Partia" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 #: order/templates/order/sales_order_base.html:111 templates/js/build.js:778 msgid "Created" -msgstr "" +msgstr "Utworzony" #: build/templates/build/detail.html:127 msgid "No target date set" @@ -1130,11 +1209,11 @@ msgstr "" #: build/templates/build/detail.html:132 templates/js/build.js:756 msgid "Completed" -msgstr "" +msgstr "Zakończone" #: build/templates/build/detail.html:136 msgid "Build not complete" -msgstr "" +msgstr "Budowa niezakończona" #: build/templates/build/edit_build_item.html:7 msgid "Alter the quantity of stock allocated to the build output" @@ -1142,39 +1221,40 @@ msgstr "" #: build/templates/build/index.html:28 build/views.py:678 msgid "New Build Order" -msgstr "" +msgstr "Nowe zlecenie budowy" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Wydrukuj zlecenia budowy" #: build/templates/build/index.html:43 #: order/templates/order/purchase_orders.html:27 #: order/templates/order/sales_orders.html:27 msgid "Display calendar view" -msgstr "" +msgstr "Pokaż widok kalendarza" #: build/templates/build/index.html:46 #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:30 msgid "Display list view" -msgstr "" +msgstr "Pokaż widok listy" #: build/templates/build/navbar.html:12 msgid "Build Order Details" -msgstr "" +msgstr "Szczegóły zlecenia budowy" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" -msgstr "" +msgstr "Szczegóły" #: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24 #: build/views.py:91 msgid "Allocate Stock" -msgstr "" +msgstr "Przydziel zapasy" #: build/templates/build/navbar.html:29 build/templates/build/navbar.html:32 msgid "Build Outputs" @@ -1182,34 +1262,35 @@ msgstr "" #: build/templates/build/navbar.html:39 msgid "Child Builds" -msgstr "" +msgstr "Budowy podrzędne" #: build/templates/build/navbar.html:50 msgid "Build Order Notes" -msgstr "" +msgstr "Notatki zlecenia budowy" #: build/templates/build/notes.html:12 msgid "Build Notes" -msgstr "" +msgstr "Notatki tworzenia" #: build/templates/build/notes.html:14 company/templates/company/notes.html:13 #: order/templates/order/order_notes.html:15 #: order/templates/order/sales_order_notes.html:16 #: part/templates/part/notes.html:14 stock/templates/stock/item_notes.html:15 msgid "Edit notes" -msgstr "" +msgstr "Edytuj uwagi" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" -msgstr "" +msgstr "Zapisz" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" -msgstr "" +msgstr "Czy na pewno chcesz cofnąć przydział wszystkich zapasów dla tej budowy?" #: build/templates/build/unallocate.html:12 msgid "All incomplete stock allocations will be removed from the build" @@ -1217,7 +1298,7 @@ msgstr "" #: build/views.py:77 msgid "Build was cancelled" -msgstr "" +msgstr "Tworzenie zostało przerwane" #: build/views.py:138 msgid "Allocated stock to build output" @@ -1225,15 +1306,15 @@ msgstr "" #: build/views.py:150 msgid "Create Build Output" -msgstr "" +msgstr "Utwórz zlecenie budowy" #: build/views.py:168 msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" -msgstr "" +msgstr "Numer seryjny już istnieje" #: build/views.py:193 msgid "Serial numbers required for trackable build output" @@ -1297,7 +1378,7 @@ msgstr "" #: build/views.py:732 msgid "Created new build" -msgstr "" +msgstr "Utworzona nowa budowa" #: build/views.py:753 msgid "Edit Build Order Details" @@ -1330,7 +1411,7 @@ msgstr "" #: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575 #: templates/js/build.js:838 templates/js/build.js:1021 msgid "Available" -msgstr "" +msgstr "Dostępne" #: build/views.py:874 msgid "Stock item must be selected" @@ -1348,626 +1429,677 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" -msgstr "" +msgstr "Dodano załącznik" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" -msgstr "" +msgstr "Edytuj załącznik" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" -msgstr "" +msgstr "Załącznik zaktualizowany" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" -msgstr "" +msgstr "Usuń załącznik" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" +msgstr "Załącznik usunięto" + +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "Nazwa instancji InvenTree" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" -msgstr "" +msgstr "Nazwa firmy" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" -msgstr "" +msgstr "Bazowy URL" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" -msgstr "" +msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" -msgstr "" +msgstr "Domyślna waluta" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" -msgstr "" +msgstr "Domyślna waluta" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" -msgstr "" +msgstr "Pobierz z adresu URL" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" -msgstr "" +msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" -msgstr "" +msgstr "Obsługa kodu kreskowego" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" -msgstr "" +msgstr "Włącz obsługę skanera kodów" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" -msgstr "" +msgstr "Wyrażenie regularne IPN" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" -msgstr "" +msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" -msgstr "" +msgstr "Zezwól na edycję IPN" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" -msgstr "" +msgstr "Skopiuj BOM komponentu" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" -msgstr "" +msgstr "Szablon" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" -msgstr "" +msgstr "Złożenie" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" -msgstr "" +msgstr "Komponent" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" -msgstr "" +msgstr "Możliwość zakupu" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" -msgstr "" +msgstr "Możliwość sprzedaży" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" -msgstr "" +msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" -msgstr "" +msgstr "Możliwość śledzenia" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" -msgstr "" +msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" -msgstr "" +msgstr "Wirtualny" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" -msgstr "" +msgstr "Części są domyślnie wirtualne" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Tryb Debugowania" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" -msgstr "" +msgstr "Rozmiar strony" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" -msgstr "" +msgstr "Raporty testów" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" -msgstr "" +msgstr "Włącz generowanie raportów testów" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" -msgstr "" +msgstr "dni" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" -msgstr "" +msgstr "Grupuj według komponentu" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" -msgstr "" +msgstr "Ustawienia wartości" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" -msgstr "" +msgstr "Cena" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" -msgstr "" +msgstr "Domyślny" #: common/templates/common/edit_setting.html:11 msgid "Current value" -msgstr "" +msgstr "Aktualna wartość" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" -msgstr "" +msgstr "Zmień ustawienie" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 -#: company/templates/company/detail.html:42 -msgid "Currency" +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "Wyślik 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 +msgid "Match Fields" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 +#: company/templates/company/detail.html:42 +msgid "Currency" +msgstr "Waluta" + +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" #: company/forms.py:77 part/forms.py:46 msgid "URL" -msgstr "" +msgstr "URL" #: company/forms.py:78 part/forms.py:47 msgid "Image URL" -msgstr "" +msgstr "URL zdjęcia" #: company/forms.py:118 msgid "Single Price" -msgstr "" +msgstr "Cena jednostkowa" #: company/forms.py:120 msgid "Single quantity price" -msgstr "" +msgstr "Cena jednostkowa" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" -msgstr "" +msgstr "Wybierz producenta" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Numer producenta" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" -msgstr "" +msgstr "MPN" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" -msgstr "" +msgstr "Opis firmy" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" -msgstr "" +msgstr "Opis firmy" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" -msgstr "" +msgstr "Strona WWW" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" -msgstr "" +msgstr "Witryna internetowa firmy" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" -msgstr "" +msgstr "Adres" + +#: company/models.py:108 +msgid "Company address" +msgstr "Adres firmy" #: company/models.py:111 -msgid "Company address" -msgstr "" - -#: company/models.py:114 msgid "Phone number" -msgstr "" +msgstr "Numer telefonu" + +#: company/models.py:112 +msgid "Contact phone number" +msgstr "Numer telefonu kontaktowego" + +#: company/models.py:115 company/templates/company/company_base.html:91 +msgid "Email" +msgstr "Adres E-Mail" #: company/models.py:115 -msgid "Contact phone number" -msgstr "" - -#: company/models.py:118 company/templates/company/company_base.html:91 -msgid "Email" -msgstr "" - -#: company/models.py:118 msgid "Contact email address" -msgstr "" +msgstr "Kontaktowy adres e-mail" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" -msgstr "" +msgstr "Kontakt" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" -msgstr "" +msgstr "Punkt kontaktowy" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" -msgstr "" +msgstr "Łącze" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" -msgstr "" +msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" -msgstr "" +msgstr "Obraz" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" -msgstr "" +msgstr "jest klientem" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" -msgstr "" +msgstr "Czy sprzedajesz produkty tej firmie?" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" -msgstr "" +msgstr "jest dostawcą" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "Czy kupujesz przedmioty od tej firmy?" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" -msgstr "" +msgstr "jest producentem" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "Czy to przedsiębiorstwo produkuje części?" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" -msgstr "" +msgstr "Część bazowa" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" -msgstr "" +msgstr "Wybierz część" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" -msgstr "" +msgstr "Producent" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" -msgstr "" +msgstr "Dostawca" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" -msgstr "" +msgstr "Wybierz dostawcę" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" -msgstr "" +msgstr "SKU" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" -msgstr "" +msgstr "Część producenta" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" -msgstr "" +msgstr "Uwaga" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" -msgstr "" +msgstr "koszt podstawowy" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" -msgstr "" +msgstr "Opakowanie" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" -msgstr "" +msgstr "Opakowanie części" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" -msgstr "" +msgstr "wielokrotność" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1981,19 +2113,19 @@ msgstr "" #: company/templates/company/company_base.html:35 #: templates/InvenTree/search.html:304 templates/js/company.js:33 msgid "Company" -msgstr "" +msgstr "Firma" #: company/templates/company/company_base.html:25 #: part/templates/part/part_thumb.html:21 msgid "Upload new image" -msgstr "" +msgstr "Prześlij nowy obraz" #: company/templates/company/company_base.html:27 #: part/templates/part/part_thumb.html:23 msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2013,7 +2145,7 @@ msgstr "" #: company/templates/company/company_base.html:84 msgid "Phone" -msgstr "" +msgstr "Telefon" #: company/templates/company/delete.html:7 #, python-format @@ -2022,43 +2154,43 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" #: company/templates/company/detail.html:21 msgid "Company Name" -msgstr "" +msgstr "Nazwa firmy" #: company/templates/company/detail.html:36 msgid "No website specified" -msgstr "" +msgstr "Nie określono strony internetowej" #: company/templates/company/detail.html:45 msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" -msgstr "" +msgstr "Klient" #: company/templates/company/detail_manufacturer_part.html:11 #: templates/InvenTree/search.html:149 msgid "Manufacturer Parts" -msgstr "" +msgstr "Części producenta" #: company/templates/company/detail_manufacturer_part.html:22 msgid "Create new manufacturer part" -msgstr "" +msgstr "Utwórz nową część producenta" #: company/templates/company/detail_manufacturer_part.html:23 #: part/templates/part/manufacturer.html:19 msgid "New Manufacturer Part" -msgstr "" +msgstr "Nowa część producenta" #: company/templates/company/detail_manufacturer_part.html:28 #: company/templates/company/detail_supplier_part.html:27 @@ -2067,120 +2199,120 @@ msgstr "" #: part/templates/part/manufacturer.html:22 #: part/templates/part/supplier.html:20 msgid "Options" -msgstr "" +msgstr "Opcje" #: company/templates/company/detail_manufacturer_part.html:33 #: company/templates/company/detail_supplier_part.html:32 #: part/templates/part/category.html:127 msgid "Order parts" -msgstr "" +msgstr "Zamów części" #: company/templates/company/detail_manufacturer_part.html:36 #: company/templates/company/detail_supplier_part.html:35 msgid "Delete parts" -msgstr "" +msgstr "Usuń części" #: company/templates/company/detail_manufacturer_part.html:36 #: company/templates/company/detail_supplier_part.html:35 msgid "Delete Parts" -msgstr "" +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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" -msgstr "" +msgstr "Nowy komponent" #: company/templates/company/detail_manufacturer_part.html:67 #: company/templates/company/detail_supplier_part.html:67 msgid "Create new Part" -msgstr "" +msgstr "Utwórz nowy komponent" #: company/templates/company/detail_manufacturer_part.html:72 #: company/views.py:71 part/templates/part/manufacturer.html:52 #: part/templates/part/supplier.html:56 msgid "New Manufacturer" -msgstr "" +msgstr "Now producent" #: company/templates/company/detail_manufacturer_part.html:73 #: company/views.py:284 msgid "Create new Manufacturer" -msgstr "" +msgstr "Utwórz nowego producenta" #: company/templates/company/detail_stock.html:10 msgid "Supplier Stock" -msgstr "" +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/stock.html:54 stock/templates/stock/location.html:163 msgid "Export" -msgstr "" +msgstr "Eksportuj" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 #: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" -msgstr "" +msgstr "Komponenty dostawcy" #: company/templates/company/detail_supplier_part.html:21 #: order/templates/order/order_wizard/select_parts.html:42 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" -msgstr "" +msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" -msgstr "" +msgstr "Now dostawca części" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" -msgstr "" +msgstr "Nowy dostawca" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" -msgstr "" +msgstr "Dodaj nowego dostawcę" #: company/templates/company/index.html:8 msgid "Supplier List" -msgstr "" +msgstr "Lista dostawców" #: company/templates/company/manufacturer_part_base.html:36 #: company/templates/company/supplier_part_base.html:36 #: company/templates/company/supplier_part_orders.html:17 #: part/templates/part/orders.html:17 part/templates/part/part_base.html:65 msgid "Order part" -msgstr "" +msgstr "Zamów część" #: company/templates/company/manufacturer_part_base.html:41 msgid "Edit manufacturer part" -msgstr "" +msgstr "Edytuj część producenta" #: company/templates/company/manufacturer_part_base.html:45 msgid "Delete manufacturer part" -msgstr "" +msgstr "Usuń cześć producenta" #: company/templates/company/manufacturer_part_base.html:57 #: company/templates/company/manufacturer_part_detail.html:10 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Szczegóły części producenta" #: company/templates/company/manufacturer_part_base.html:62 #: company/templates/company/manufacturer_part_detail.html:18 #: company/templates/company/supplier_part_base.html:61 #: company/templates/company/supplier_part_detail.html:18 msgid "Internal Part" -msgstr "" +msgstr "Część wewnętrzna" #: company/templates/company/manufacturer_part_delete.html:6 msgid "Are you sure you want to delete the following Manufacturer Parts?" @@ -2196,7 +2328,7 @@ msgstr "" #: part/templates/part/navbar.html:81 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" -msgstr "" +msgstr "Dostawcy" #: company/templates/company/manufacturer_part_navbar.html:19 msgid "Manufacturer Part Stock" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2213,7 +2345,7 @@ msgstr "" #: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:173 #: templates/js/part.js:398 templates/js/stock.js:563 templates/navbar.html:26 msgid "Stock" -msgstr "" +msgstr "Stan" #: company/templates/company/manufacturer_part_navbar.html:26 msgid "Manufacturer Part Orders" @@ -2222,7 +2354,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 #: company/templates/company/supplier_part_navbar.html:22 msgid "Orders" -msgstr "" +msgstr "Zamówienia" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/supplier.html:22 @@ -2234,12 +2366,12 @@ msgstr "" #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 #: stock/views.py:1002 users/models.py:187 msgid "Delete" -msgstr "" +msgstr "Usuń" #: company/templates/company/manufacturer_part_suppliers.html:48 #: part/templates/part/supplier.html:51 msgid "Create new supplier" -msgstr "" +msgstr "Utwórz nowego dostawcę" #: company/templates/company/navbar.html:20 #: company/templates/company/navbar.html:23 @@ -2249,7 +2381,7 @@ msgstr "" #: company/templates/company/navbar.html:29 #: company/templates/company/navbar.html:32 msgid "Supplied Parts" -msgstr "" +msgstr "Dostarczone części" #: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 #: stock/templates/stock/location.html:107 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2351,7 +2483,7 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:29 msgid "Pricing" -msgstr "" +msgstr "Cennik" #: company/templates/company/supplier_part_orders.html:18 #: part/templates/part/orders.html:18 @@ -2360,10 +2492,10 @@ msgstr "" #: company/templates/company/supplier_part_pricing.html:11 msgid "Pricing Information" -msgstr "" +msgstr "Informacja cenowa" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2375,7 +2507,7 @@ msgstr "" #: company/templates/company/supplier_part_pricing.html:89 #: part/templates/part/sale_prices.html:97 msgid "Edit price break" -msgstr "" +msgstr "Edytuj przedział cenowy" #: company/templates/company/supplier_part_pricing.html:90 #: part/templates/part/sale_prices.html:98 @@ -2386,33 +2518,38 @@ msgstr "" #: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" -msgstr "" +msgstr "Producenci" #: company/views.py:77 templates/InvenTree/search.html:336 #: templates/navbar.html:45 msgid "Customers" -msgstr "" +msgstr "Klienci" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" -msgstr "" +msgstr "Nowy klient" #: company/views.py:86 msgid "Companies" -msgstr "" +msgstr "Firmy" #: company/views.py:87 msgid "New Company" -msgstr "" +msgstr "Nowa firma" #: company/views.py:169 part/views.py:848 msgid "Download Image" -msgstr "" +msgstr "Pobierz obraz" #: company/views.py:198 part/views.py:880 msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2427,27 +2564,27 @@ msgstr "" #: company/views.py:259 msgid "Edit Company" -msgstr "" +msgstr "Edytuj firmę" #: company/views.py:264 msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" -msgstr "" +msgstr "Utwórz nowego klienta" #: company/views.py:289 msgid "Create new Company" -msgstr "" +msgstr "Utwórz nową firmę" #: company/views.py:316 msgid "Created new company" -msgstr "" +msgstr "Utwórz nową firmę" #: company/views.py:332 msgid "Company was deleted" -msgstr "" +msgstr "Usunięto firmę" #: company/views.py:357 msgid "Edit Manufacturer Part" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" -msgstr "" +msgstr "Edytuj przedział cenowy" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,71 +2626,79 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" -msgstr "" +msgstr "Nazwa etykiety" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" -msgstr "" +msgstr "Opis etykiety" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" -msgstr "" +msgstr "Etykieta" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" -msgstr "" +msgstr "Aktywne" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 -msgid "Width [mm]" -msgstr "" - #: label/models.py:130 +msgid "Width [mm]" +msgstr "Szerokość [mm]" + +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 -msgid "Height [mm]" -msgstr "" - #: label/models.py:137 +msgid "Height [mm]" +msgstr "Wysokość [mm]" + +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" -msgstr "" +msgstr "Filtry" #: order/forms.py:27 order/templates/order/order_base.html:47 msgid "Place order" -msgstr "" +msgstr "Złóż zamówienie" #: order/forms.py:38 order/templates/order/order_base.html:54 msgid "Mark order as complete" -msgstr "" +msgstr "Oznacz zamówienie jako zakończone" #: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59 #: order/templates/order/sales_order_base.html:59 msgid "Cancel order" -msgstr "" +msgstr "Anuluj zamówienie" #: order/forms.py:71 order/templates/order/sales_order_base.html:56 msgid "Ship order" -msgstr "" +msgstr "Wyślij zamówienie" #: order/forms.py:82 msgid "Receive parts to this location" @@ -2571,43 +2716,43 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" -msgstr "" +msgstr "Wprowadź ilość produktów magazynowych" #: order/models.py:99 msgid "Order reference" -msgstr "" +msgstr "Odniesienie zamówienia" #: order/models.py:101 msgid "Order description" -msgstr "" +msgstr "Opis Zamówienia" #: order/models.py:103 msgid "Link to external page" -msgstr "" +msgstr "Link do zewnętrznej witryny" #: order/models.py:111 part/templates/part/detail.html:132 msgid "Created By" -msgstr "" +msgstr "Utworzony przez" #: order/models.py:118 msgid "User or group responsible for this order" -msgstr "" +msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" #: order/models.py:123 msgid "Order notes" -msgstr "" +msgstr "Notatki do zamówienia" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2626,11 +2771,11 @@ msgstr "" #: order/models.py:201 msgid "received by" -msgstr "" +msgstr "odebrane przez" #: order/models.py:206 msgid "Issue Date" -msgstr "" +msgstr "Data wydania" #: order/models.py:207 msgid "Date order was issued" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" -msgstr "" +msgstr "Data wysyłki" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" -msgstr "" +msgstr "wysłane przez" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" -msgstr "" +msgstr "Ilość elementów" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" -msgstr "" +msgstr "Zamówienie" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" -msgstr "" +msgstr "Odebrane" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" -msgstr "" +msgstr "Cena zakupu" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" -msgstr "" +msgstr "Cena zakupu jednostkowego" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "Cena sprzedaży" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "Jednostkowa cena sprzedaży" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" -msgstr "" +msgstr "Linia" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" -msgstr "" +msgstr "Komponent" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2819,20 +2970,20 @@ msgstr "" #: order/templates/order/order_base.html:82 #: order/templates/order/sales_order_base.html:82 msgid "Order Status" -msgstr "" +msgstr "Status zamówienia" #: order/templates/order/order_base.html:117 #: report/templates/report/inventree_build_order_base.html:122 msgid "Issued" -msgstr "" +msgstr "Wydany" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" -msgstr "" +msgstr "Nowa lokalizacja" #: order/templates/order/order_base.html:181 #: order/templates/order/purchase_order_detail.html:101 @@ -2862,6 +3013,75 @@ msgstr "" #: order/templates/order/order_notes.html:13 msgid "Order Notes" +msgstr "Notatki zamówień" + +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "Wiersz" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." msgstr "" #: order/templates/order/order_wizard/select_parts.html:9 @@ -2878,7 +3098,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:31 msgid "Select Supplier" -msgstr "" +msgstr "Wybierz dostawcę" #: order/templates/order/order_wizard/select_parts.html:57 #, python-format @@ -2888,7 +3108,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:69 #: part/templates/part/set_category.html:32 msgid "Remove part" -msgstr "" +msgstr "Usuń część" #: order/templates/order/order_wizard/select_pos.html:8 msgid "Step 2 of 2 - Select Purchase Orders" @@ -2901,7 +3121,7 @@ msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 #: templates/js/order.js:205 templates/js/order.js:308 msgid "Items" -msgstr "" +msgstr "Przedmioty" #: order/templates/order/order_wizard/select_pos.html:32 msgid "Select Purchase Order" @@ -2929,15 +3149,15 @@ msgstr "" #: order/templates/order/po_navbar.html:20 #: order/templates/order/po_received_items.html:12 msgid "Received Items" -msgstr "" +msgstr "Otrzymane elementy" #: order/templates/order/purchase_order_detail.html:14 msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" -msgstr "" +msgstr "Cena jednostkowa" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,10 +3201,10 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" -msgstr "" +msgstr "Części" #: order/templates/order/receive_parts.html:15 msgid "Select parts to receive against this order" @@ -2991,7 +3212,7 @@ msgstr "" #: order/templates/order/receive_parts.html:20 msgid "Order Code" -msgstr "" +msgstr "Kod zamówienia" #: order/templates/order/receive_parts.html:21 #: part/templates/part/part_base.html:129 templates/js/part.js:414 @@ -3000,7 +3221,7 @@ msgstr "" #: order/templates/order/receive_parts.html:23 msgid "Receive" -msgstr "" +msgstr "Odbierz" #: order/templates/order/receive_parts.html:36 msgid "Error: Referenced part has been removed" @@ -3008,7 +3229,7 @@ msgstr "" #: order/templates/order/receive_parts.html:57 msgid "Remove line" -msgstr "" +msgstr "Usuń linie" #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" -msgstr "" +msgstr "Akcje" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" -msgstr "" +msgstr "Numer ID" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" -msgstr "" +msgstr "Przydzielono" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "Oblicz cenę" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,172 +3370,197 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" -msgstr "" +msgstr "Wyślij zamówienie" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" -msgstr "" +msgstr "Otrzymane przedmioty" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" -msgstr "" +msgstr "Nie ustawiono miejsca docelowego" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" -msgstr "" +msgstr "Błąd konwersji ilości na liczbę" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "Nie znaleziono ceny" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" -msgstr "" +msgstr "Domyślna lokalizacja" #: part/bom.py:139 part/templates/part/part_base.html:117 msgid "Available Stock" -msgstr "" +msgstr "Dostępna ilość" #: part/bom.py:379 #, python-brace-format @@ -3318,15 +3577,15 @@ msgstr "" #: part/forms.py:89 stock/forms.py:265 msgid "File Format" -msgstr "" +msgstr "Format pliku" #: part/forms.py:89 stock/forms.py:265 msgid "Select output file format" -msgstr "" +msgstr "Wybierz format pliku wyjściowego" #: part/forms.py:91 msgid "Cascading" -msgstr "" +msgstr "Kaskadowe" #: part/forms.py:91 msgid "Download cascading / multi-level BOM" @@ -3334,7 +3593,7 @@ msgstr "" #: part/forms.py:93 msgid "Levels" -msgstr "" +msgstr "Poziomy" #: part/forms.py:93 msgid "Select maximum number of BOM levels to export (0 = all levels)" @@ -3372,9 +3631,9 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" -msgstr "" +msgstr "Część nadrzędna" #: part/forms.py:123 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" @@ -3390,7 +3649,7 @@ msgstr "" #: part/forms.py:153 msgid "validate" -msgstr "" +msgstr "potwierdź" #: part/forms.py:153 msgid "Confirm that the BOM is correct" @@ -3448,9 +3707,9 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" -msgstr "" +msgstr "Podczęść" #: part/forms.py:372 msgid "Input quantity for price calculation" @@ -3462,20 +3721,20 @@ msgstr "" #: part/models.py:76 msgid "Default keywords" -msgstr "" +msgstr "Domyślne słowa kluczowe" #: part/models.py:76 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3523,25 +3782,25 @@ msgstr "" #: part/models.py:705 part/templates/part/detail.html:60 msgid "Variant Of" -msgstr "" +msgstr "Wariant" #: part/models.py:711 msgid "Part description" -msgstr "" +msgstr "Opis części" #: part/models.py:716 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" -msgstr "" +msgstr "Słowa kluczowe" #: part/models.py:717 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" -msgstr "" +msgstr "Kategoria" #: part/models.py:725 msgid "Part category" @@ -3550,7 +3809,7 @@ msgstr "" #: part/models.py:730 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:94 templates/js/part.js:161 msgid "IPN" -msgstr "" +msgstr "IPN" #: part/models.py:731 msgid "Internal Part Number" @@ -3563,7 +3822,7 @@ msgstr "" #: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 #: templates/js/part.js:165 msgid "Revision" -msgstr "" +msgstr "Wersja" #: part/models.py:760 msgid "Where is this item normally stored?" @@ -3587,16 +3846,16 @@ msgstr "" #: part/models.py:821 part/templates/part/detail.html:113 msgid "Minimum Stock" -msgstr "" +msgstr "Minimalny stan magazynowy" #: part/models.py:822 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" -msgstr "" +msgstr "Jednostki" #: part/models.py:829 msgid "Stock keeping units for this part" @@ -3623,14 +3882,14 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" -msgstr "" +msgstr "Aktywny" #: part/models.py:862 msgid "Is this part active?" -msgstr "" +msgstr "Czy ta część jest aktywna?" #: part/models.py:867 msgid "Is this a virtual part, such as a software product or license?" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 +#: part/models.py:1616 +msgid "Sell multiple" +msgstr "Sprzedaj wiele" + +#: part/models.py:1987 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:1966 +#: part/models.py:2004 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 msgid "Test Name" -msgstr "" +msgstr "Nazwa testu" -#: part/models.py:1987 +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" -msgstr "" +msgstr "Wymagane" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" -msgstr "" +msgstr "Dane" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" -msgstr "" +msgstr "Wartość domyślna" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" -msgstr "" +msgstr "Suma kontrolna" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" -msgstr "" +msgstr "Część 1" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" -msgstr "" +msgstr "Część 2" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" -msgstr "" +msgstr "Wybierz powiązaną część" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3843,7 +4106,7 @@ msgstr "" #: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 #: part/templates/part/navbar.html:51 msgid "Bill of Materials" -msgstr "" +msgstr "Zestawienie materiałowe" #: part/templates/part/bom.html:19 #, python-format @@ -3866,11 +4129,11 @@ msgstr "" #: part/templates/part/bom.html:35 msgid "Import BOM data" -msgstr "" +msgstr "Importuj dane BOM" #: part/templates/part/bom.html:39 msgid "Copy BOM from parent part" -msgstr "" +msgstr "Kopiuj BOM z części nadrzędnej" #: part/templates/part/bom.html:43 msgid "New BOM Item" @@ -3878,7 +4141,7 @@ msgstr "" #: part/templates/part/bom.html:46 msgid "Finish Editing" -msgstr "" +msgstr "Zakończ edycję" #: part/templates/part/bom.html:51 msgid "Edit BOM" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4021,11 +4247,11 @@ msgstr "" #: part/templates/part/category.html:24 msgid "All parts" -msgstr "" +msgstr "Wszystkie części" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" -msgstr "" +msgstr "Stwórz nową kategorię komponentów" #: part/templates/part/category.html:35 msgid "Edit part category" @@ -4091,9 +4317,9 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" -msgstr "" +msgstr "Utwórz nową lokalizację magazynową" #: part/templates/part/category_delete.html:5 msgid "Are you sure you want to delete category" @@ -4110,7 +4336,7 @@ msgstr "" #: part/templates/part/category_delete.html:11 msgid "category" -msgstr "" +msgstr "kategoria" #: part/templates/part/category_delete.html:13 msgid "top level Parts category" @@ -4134,16 +4360,16 @@ msgstr "" #: part/templates/part/category_navbar.html:37 #: part/templates/part/navbar.html:22 msgid "Parameters" -msgstr "" +msgstr "Parametry" #: part/templates/part/category_parametric.html:10 #: part/templates/part/navbar.html:19 part/templates/part/params.html:10 msgid "Part Parameters" -msgstr "" +msgstr "Parametry części" #: part/templates/part/copy_part.html:9 part/views.py:460 msgid "Duplicate Part" -msgstr "" +msgstr "Duplikuj część" #: part/templates/part/copy_part.html:10 #, python-format @@ -4167,11 +4393,11 @@ msgstr "" #: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 msgid "Part Details" -msgstr "" +msgstr "Szczegóły części" #: part/templates/part/detail.html:42 msgid "Latest Serial Number" -msgstr "" +msgstr "Ostatni numer seryjny" #: part/templates/part/detail.html:47 msgid "No serial numbers recorded" @@ -4183,15 +4409,15 @@ msgstr "" #: part/templates/part/detail.html:139 msgid "Responsible User" -msgstr "" +msgstr "Odpowiedzialny użytkownik" #: part/templates/part/detail.html:153 msgid "Part is virtual (not a physical part)" -msgstr "" +msgstr "Część jest wirtualna (nie fizyczna)" #: part/templates/part/detail.html:155 msgid "Part is not a virtual part" -msgstr "" +msgstr "Część nie jest częścią wirtualną" #: part/templates/part/detail.html:163 msgid "Part is a template part (variants can be made from this part)" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index d14c214d50..df6f0336c7 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: ru\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -117,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index db257af1fe..9d3d99e1c6 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -1,152 +1,151 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" +"Last-Translator: \n" +"Language-Team: Turkish\n" +"Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: tr\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "API uçnoktası bulunmadı" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "Hiçbir eylem belirtilmedi" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "Eşleşen eylem bulunamadı" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Tarih giriniz" #: InvenTree/forms.py:110 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 msgid "Confirm" -msgstr "" +msgstr "Onay" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "Silmeyi Onayla" #: InvenTree/forms.py:127 msgid "Confirm item deletion" -msgstr "" +msgstr "Silmeyi onayla" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "Şifrenizi girin" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "Lütfen Yeni Parolayı Girin" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Parolayı doğrulayın" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Yeni parolayı doğrulayın" #: InvenTree/forms.py:203 msgid "Apply Theme" -msgstr "" +msgstr "Temayı Uygula" #: InvenTree/forms.py:233 msgid "Select Category" -msgstr "" +msgstr "Kategori Seçin" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Tekrarlanan seri {n}" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" -msgstr "" +msgstr "Geçersiz veri sağlandı" #: InvenTree/helpers.py:387 msgid "Empty serial number string" -msgstr "" +msgstr "Boş seri numarası dizesi" #: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415 #: InvenTree/helpers.py:440 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Geçersiz grup: {g}" #: InvenTree/helpers.py:445 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Tekrarlanan seri {g}" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "Seri numarası bulunamadı" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "Benzersiz serinin numaraları ({s}) miktarla eşleşmeli ({q})" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" -msgstr "" +msgstr "Ek" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "" +msgstr "Eklenecek dosyayı seç" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Yorum" #: InvenTree/models.py:62 msgid "File comment" -msgstr "" +msgstr "Yorum" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "Kullanıcı" #: InvenTree/models.py:72 msgid "upload date" -msgstr "" +msgstr "Yükleme tarihi" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "Adı" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -160,123 +159,200 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Açıklama" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "" +msgstr "Açıklama(opsiyonel)" #: InvenTree/models.py:123 msgid "parent" -msgstr "" +msgstr "ebeveyn" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" -msgstr "" +msgstr "İngilizce" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" -msgstr "" +msgstr "Fransızca" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" -msgstr "" +msgstr "Almanca" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" -msgstr "" +msgstr "Polonyaca" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" -msgstr "" +msgstr "Türkçe" #: InvenTree/status.py:93 msgid "Background worker check failed" -msgstr "" +msgstr "Arka plan çalışanı kontrolü başarısız oldu" #: InvenTree/status.py:97 msgid "Email backend not configured" -msgstr "" +msgstr "E-posta arka ucu yapılandırılmadı" #: InvenTree/status.py:100 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "InvenTree sistem sağlık kontrolü başarısız" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "Bekliyor" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Sipariş verildi" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 -msgid "Lost" -msgstr "" +msgstr "Tamamlandı" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 -msgid "Returned" -msgstr "" +#: InvenTree/status_codes.py:316 +msgid "Cancelled" +msgstr "İptal edildi" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 +msgid "Lost" +msgstr "Kayıp" + +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 +msgid "Returned" +msgstr "İade" + +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Attention needed" -msgstr "" +msgstr "Sevk edildi" #: InvenTree/status_codes.py:186 -msgid "Damaged" -msgstr "" +msgid "OK" +msgstr "TAMAM" #: InvenTree/status_codes.py:187 -msgid "Destroyed" -msgstr "" +msgid "Attention needed" +msgstr "Dikkat gerekli" + +#: InvenTree/status_codes.py:188 +msgid "Damaged" +msgstr "Hasarlı" #: InvenTree/status_codes.py:189 +msgid "Destroyed" +msgstr "Kullanılamaz durumda" + +#: InvenTree/status_codes.py:191 msgid "Rejected" +msgstr "Reddedildi" + +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:237 -msgid "Production" +#: InvenTree/status_codes.py:274 +msgid "Stock item created" msgstr "" +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Production" +msgstr "Üretim" + #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "Geçerli para birimi yok" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Parça adında geçersiniz karakter bulunuyor" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN regex kalıbıyla eşleşmelidir {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -382,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -422,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -452,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -465,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -523,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -547,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -566,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -622,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -635,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -673,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -716,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -818,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -838,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -903,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -914,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -961,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1118,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1174,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1208,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1237,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1354,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1727,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1764,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1999,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2028,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2045,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2094,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2141,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2211,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2264,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2319,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2369,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2399,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2419,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2439,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2471,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2479,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2495,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2577,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2613,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2654,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2663,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2836,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2870,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2942,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2952,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2986,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3048,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3142,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3378,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3454,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3474,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3544,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3599,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3629,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3666,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3911,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3929,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -4004,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4029,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4097,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4288,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4321,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4357,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4398,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4426,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4570,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4719,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4877,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4899,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4942,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4999,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5290,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5528,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5568,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5601,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5768,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5902,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6106,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6116,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6172,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6317,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6415,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6548,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6746,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6770,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7009,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7121,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7264,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 2075ec9326..c897b54b5a 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 14:58\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -11,33 +11,38 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "未找到 API 端点" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "未指定操作" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "未找到指定操作" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "输入日期" #: InvenTree/forms.py:110 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 msgid "Confirm" -msgstr "" +msgstr "确认" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "确认删除" #: InvenTree/forms.py:127 msgid "Confirm item deletion" @@ -45,35 +50,35 @@ msgstr "" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "输入密码" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "输入新密码" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "确认密码" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "确认新密码" #: InvenTree/forms.py:203 msgid "Apply Theme" -msgstr "" +msgstr "应用主题" #: InvenTree/forms.py:233 msgid "Select Category" -msgstr "" +msgstr "选择分类" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -94,53 +99,53 @@ msgstr "" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "未找到序列号" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" -msgstr "" +msgstr "附件" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "" +msgstr "选择附件" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "注释" #: InvenTree/models.py:62 msgid "File comment" -msgstr "" +msgstr "文件注释" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "用户" #: InvenTree/models.py:72 msgid "upload date" -msgstr "" +msgstr "上传日期" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "名称" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ 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:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +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 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,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 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_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 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,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:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, 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:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/crowdin.yml b/crowdin.yml index 0fa92db24d..ad69a576eb 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,6 @@ +"commit_message": "Fix: New translations %original_file_name% from Crowdin" +"append_commit_message": false + files: - source: /InvenTree/locale/en/LC_MESSAGES/django.po translation: /InvenTree/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%